Home [ade] cookies

Understanding licenses, bit by bit (2)

Thanks to all those who commented on my recent proposal to “iconify” licenses. That is, representing the essential terms of various Free Software licenses as icons so you can quickly get a feel for their meaning. This is, in the current state of software licensing, no replacement for actually reading and understanding the licenses, but as a mechanism for quick (as opposed to deep) understanding it seems to work well enough.

network copyleftComputerDruid pointed out that we’d need an icon for the network-copyleft effect of the Affero-style licenses (AGPLv2 and AGPLv3). The salient point of the GNU Affero General Public Licenses is that the requirement to distribute source is also triggered by interacting with the program over a network. The license text has an addition (in version 3) to clause 13:

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network … an opportunity to receive the Corresponding Source of your version …

None of the licenses examined so far has such a clause, so that’s why I hadn’t drawn one up yet.

The “Free Software” icon is the only one that grants permissions. It says “this license grants you the Four Freedoms”. The other icons all describe conditions on the license. Copyleft, network effect. The patent grant is both a permission outside the scope of copyright, as well as a condition related to downstream use of those patents and your own patent rights (if any) in the program (in those jurisdictions where there are software patents). In this sense, fewer icons means fewer conditions, and hence more free to use — but at the cost of not guaranteeing the Four Freedoms downstream, for the most part. Compare, for instance:

  • free softwareThis program is Free Software; you have at least the Four Freedoms, but copyright notices must be preserved and the license text distributed with the program.
  • free softwareprovide sourcestrong copyleftnetwork copyleftpatentThis program is Free Software; you have at least the Four Freedoms, but copyright notices must be preserved and the license text distributed with the program. In addition, you are required to provide source (under some circumstances). The source provision applies to your own code as well that is added to the program (strong copyleft). The source provision applies also if you provide access to the program over a network (Affero). There is an explicit patent grant involved.

Whoo. That’s quite some text, but still a great deal shorter than the GPLv3.

Paul Boddie points out that the “weak copyleft” symbol is probably redundant (I agree). That would make the number of source-related icons three (and the number of the counting shall be three). There would be “provide source” (i.e. weak-copyleft), and then two modifying icons for strong and network copyleft. I like it — something to take into account in the wrap-up to this series.

See, by now we’re almost getting into a grammar of these things, which is something I would like to avoid. Keep it simple, keep an overview that allows selection and understanding at a high level, and then look at the relevant license texts in detail.

free softwaresourcecopyleftpatent grantSo, let’s move on to the license texts in detail for a moment. Yesterday I wrote up that the Apache license, version 2.0 and the Mozilla license, version 1.1 were roughly the same. Both got the same set of icons based on my quick reading of both licenses. So let’s take a closer to see if there are relevant differences in the licenses. If there are, we may need to add a distinguishing badge.

General remarks: Apache has a notion of “contribution” spelled out in the license; I think this is intended to clear up what happens when you send a patch to a mailing list — is that intended for inclusion under the same license or not? In my experience, people do submit patches that they do not want to have included — on public mailing lists, no less — but it is very rare. I don’t think this is a crucial difference. The Apache license explicitly excludes linking as a means of creating a derivative work. The Mozilla license defines “commercial use” in a surprising way that includes many things I would consider non-commercial: namely, if I give my friend a USB stick with the source, that’s commercial use according to the license. Mozilla has a concept of “Initial Developer”, which I think is compatible with the Apache notion of “Licensor” — they’re both licenses that are directed at centralized projects with a clear central copyright holder.

Using the software: Mozilla clause 2.1a allows you to use, sublicense and distribute the code and modifications. Apache clause 2 allows the same, but makes explicit that object code distribution is allowed.

Patent grant: Mozilla clause 2.1b grants a license to those patents embodied in the Original Code. Mozilla excludes patents covered by code deleted from the original code — so you can’t re-implement something covered by a patent, it seems. Apache clause 3 does the patent grant and adds explicit termination conditions to that patent grant. Termination in Mozilla is covered in section 8.2. The termination in Apache applies to the relevant patents, while the Mozilla license terminates on any patent. That’s an important distinction when it comes to litigation; I’m not sure it has a place in this iconic scheme, though.

Trademarks: Neither (software, copyright) license grants a trademark license. Apache makes this explicit.

Distribution: Mozilla clause 3.1 and Apache clause 4.1 both require distributing the license text. Both require a notice of modifications made to the original source, but Mozilla wants that in a separate file while Apache allows you to annotate the files themselves. This is similar to the GPLv2 clause 2a, and is something that I very rarely see people (or Free Software projects) do systematically. I don’t think it’s a crucial difference.

Copyleft: Ha, I’m such a moron. How could I have missed this? See, Mozilla clause 3.1 and 3.2 say that the Mozilla license applies to the source code and that the source must be available, also for modified versions. While you may distribute executables under a different license, they must have corresponding source code available under the Mozilla license. So that’s a copyleft license, and the source for executables is available. But … and this is a pretty darn big but … the Apache license does not require this. Clause 4 says a number of things about distribution as source, and allows distribution in object form, but places no restrictions on the distribution of object forms except that the license needs to be included. In other words, you can use the Apache license and distribute binaries without providing source. With Mozilla, you can’t.

So it’s a good thing that the similarity in the reduced representations of the licenses (i.e. the row of icons) has led to a re-examination of the licenses, because it leads to the understanding that the licenses are not the same, by a long shot. Of course, I could have just looked it up in the FSF license list: Mozilla (copyleft, not GPL compatible) and Apache (no copyleft, GPL compatible). If I were a professor I’d claim I’d made the error intentionally in order to spur closer examination of both licenses.

free softwaresourcecopyleftpatent grantMozilla Public License v.1.1

free softwaresourcepatent grantApache License v.2

Tomorrow I’ll carry on with the next 10 licenses in the top-20 list to see if any interesting new features show up, and then on Saturday I can wrap up with a table showing the 10-mile view of all those licenses.

Tags: , , ,

9 Responses to “Understanding licenses, bit by bit (2)”

  1. Lefty Says:

    “Mozilla excludes patents covered by code deleted from the original code — so you can’t re-implement something covered by a patent, it seems.”

    That’s not my reading of it, Adriaan. My sense of that clause is that you can’t both remove code which embodies a patent expressed in the Original Code and still enjoy the protection of that patent.

    You can re-implement, but if you re-implement in a way that infringes the original patent, you’re not protected against claims under that patent by the patent holder.

    I think this is intended to close a potential loophole: without these terms, it seems to me that you could a) remove and re-implement the patent-embodying code in an infringing fashion; then, since you were the copyright holder on the new patent-embodying code, you could take it and re-use it in a completely different context, while still being insulated from infringement under the terms of the license applied to the Original Code…

    Does that make sense…?

  2. adridg Says:

    That makes a ton of sense. Thanks Lefty.

  3. Lefty Says:

    “We aim to please!” =D

  4. uberVU - social comments Says:

    Social comments and analytics for this post…

    This post was mentioned on Identica by alinamierlus: Understanding licenses, bit a bit: . See also part 2:

  5. jack Says:

    I suggest that all of the licenses gets all icons. If license has a right there should be green icon, if license does not give you the right then red icon. Why? I know what are ALL! my rights, when seeing a license I need to know what I am not permitted to do (what are license limitations). Just like on traffic semaphore there is red light that show you that you are not allowed to do.

  6. LPĮ #4 | geko Says:

    [...] Nori daugiau sužinoti apie populiariausias sutinkamas LPĮ licenzijas, vertėtu paskaityti išsamų straipsnį “Understanding licenses, bit by bit” bei jo antrąja dalį. [...]

  7. Nate Loomis Says:

    How about a plus icon meaning additional conditions not covered by the icons. I’m not talking about specifics related to copyleft, patent grants, etc… I mean that the license requires you to buy the author’s book or send him a postcard (both actual examples) or something more practical like more than copyrights and licenses must be preserved. It might be nice to have an icon that states ergo, you will need to read this license because crazy other requirements exist. :)

    I love the idea. Thanks for posting it.

  8. adridg Says:

    Yes, something like that. I added a warning (triangle with exclamation mark) badge which you can see on the complete page ( to indicate that situation.

  9. Arne Babenhauserheide Says:

    I really like the idea and implementation (though the icons could use a designer – but maybe you can borrow some from cc).

    What I miss is an icon saying “GPL compatible”. Since over 50% of the free projects use the GPL, that’s provides the crucial information: “Can I use this?”

    Also I wouldn’t sort the licenses into “four freedoms” and “conditions” but rather in

    * freedom for the developer and

    * freedom and assurances for the community

    Or simpler: “grants” and “protections” (or even “grants” and “guards”).

    If I use the GPL, I grant other developers the four freedoms, and I get the assurance, that these freedoms are guarded, so they can’t be taken away once I granted them.