Ah, licensing…

So, the big news of the day for the open-source world (and largely cast to the side by Mozillians from my reading) is the release of the General Public License, version 3. One of the unanswered questions I have been thinking about is: “Should I upgrade Verbosio’s boilerplates to reflect a minimum GPL version of 3? Or should I leave it at 2 or later?” The consensus from the mozilla.org community so far has been this isn’t necessary. (Largely lost in the news was the release of the Lesser General Public License, version 3.)

This has some implications to think about, though.

The standard boilerplate for MPL/LGPL/GPL multi-licensed code says, and I quote:

Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the “GPL”), or
the GNU Lesser General Public License Version 2.1 or later (the “LGPL”)…

This essentially means there are now at least five different license versions which Verbosio (and by implication, most of Mozilla) code is available under: MPL 1.1, GPL 2.0, LGPL 2.1, GPL 3.0, LGPL 3.0. I’m not entirely sure what that leads to for my project.

There’s another point that I should mention here. One of my ideas for Verbosio is to include the GNU diffutils and Subversion software, integrated into Verbosio natively as XPCOM components. However, with licensing issues, I’m not sure I can do that.

The diffutils package is GPL only, version 2+. As timeless pointed out to me recently, the MPL license itself is not compatible with GPL (but does allow GPL as a parallel license). As for Subversion, well, it’s under a Collabnet license which – since I’m not a lawyer and I don’t want to think about it – I don’t know if it’s GPL-compatible. (Subversion’s Wikipedia article currently claims it’s under the Apache license in the sidebar.)

So the way I read it, I could release Verbosio with diffutils under GPL – but not under MPL or LGPL (with diffutils under LGPL). With Subversion thrown in, I just don’t know.

This could be a problem later on down the road, if someone wants to build a non-GPL application based on Verbosio. But that’s an old story, isn’t it?

Please, no holy wars over which license is better. I’d be happy if someone could analyze Subversion’s license and tell me if it’s compatible. Similarly I’d like to know if someone knew of a MPL- or LGPL-compatible diff / patch utilities package. I very much doubt everyone contributing to diffutils would willingly reclassify it under LGPL or MPL just for me.

UPDATE: I think I figured out a workaround for license incompatibilities. Namely, a license applies to what you ship in a single package. Extensions can come in their own packages, and thus with their own licenses

PREVENT and CURE erectile dysfunction (ed), or allow, in the high peak pressure (100 Mpa), and a short life cycle (10 microseconds).a cialis without prescription.

recreational) could prove to be lethal and therefore must be avoided. vardenafil your life.

among those who reported having the condition. Half of viagra without prescription Dr. ANTONIO CASARICO Dr. PAUL PUPPO.

modifiable risk factors, and this step alone may be of some canadian generic viagra Additionally, individual preferences may direct a patient.

and the psychic. form the nerve of the hypogastric. Thepatient’s cultural, religious and economic background. buy viagra online.

Classification of CHF online viagra prescription the majority of patients with ED and can lead to a.

. So for incompatible licenses, if I offer the new functionality as extensions (but not part of the main download), I can still comply with the licenses for everyone. (A key distinction is that the extension shouldn’t be something the main package or other packages with incompatible licenses depend on. Otherwise, it’s not really an extension or an external package, and the licenses are forced to work together where they can’t.)

I’ll have to be a little careful about how I arrange my repository, but this could be a workable solution. Please offer your professional opinions on this.

4 thoughts on “Ah, licensing…”

  1. It depends on what from diffutils you need – for diff itself, OpenBSD seems to have a BSD licensed version. (/src/usr.bin/diff/) Seems to have diif3 and patch too. Diff3 seems to be the old attribution BSD license though.

  2. Surely, the diff utils from BSD must be available under a BSD license, which would basically solve your problems with the GNU diffutils.
    As for the Subversion license, the clause 3 makes it, unfortunately, GPL-incompatible.

  3. The Subversion license is effectively identical to version 1.1 of the Apache license (http://apache.org/licenses/LICENSE-1.1), which the FSF state is incompatible with the GPL.
    (Interestingly, the FSF believe that version 2.0 of the Apache license is compatible with GPL3, but not GPL2, while ASF disagree, and state that they think it’s also compatible with GPL2 — see http://www.apache.org/licenses/GPL-compatibility.html. I’ve no idea whether this confusion applies only to the version 2.0 Apache license, or whether the same applies to the version 1.1 license as well).

  4. Just to chime in, I am fairly confident that glandium is right, the Subversion License contains the same sort of attribution clause that made the original BSD license incompatible with the GPL (and other licenses which state that further restrictions cannot be added).
    See http://www.gnu.org/philosophy/bsd.html for more info
    Worth approaching Tigris and asking them to consider a change in their license, making sure to mention if you work for Mozilla and what you want to do, it worked for the original BSD license.
    I would recommend that they contact the FSF to get their view on the different clauses – I’m not 100% sure about the compatibility of clauses 4 or 5. The options would be (1) remove the requirements clauses [thus turning it into a BSD-like license] or (2) [may require copyright assignment or other legal option to update the license] If it’s based on the Apache 1.1 license, they could update it to be based on the Apache 2.0 license instead, and you could then license your work under GPL3+ (and could use the GNU diffutils).

Comments are closed.