How to properly(?) relicense a large open source project - part 2

8 November 2012

Relicensing VLC to LGPL

As you might know, or might have read, I am spending a lot of my time to relicense libVLC, aka VLC engine, from GPL to LGPL.

This is a continuation of the LGPL posts, please read the previous post, if you have not done it already.

So, I had a list of contributors on the parts I was considering to relicense, thanks to the previous work.

Cleaning the contributors list

This huge list was dumped in a spreadsheet, using LibreOffice. I used during all the relicensing with crazy big formulas to keep my status up-to-date.

While I thought curating the list was useless, it revealed very important, since some developers use pseudonyms or change e-mail addresses. I thought my list was already unique in the past, but it was not.

Of course, a lot of emails were invalid, so manual corrections where necessary.

Splitting the list

During the core relicensing of VLC, an important number of users allowed us to relicense all the VLC code, so I had to mark them as such in the spreadsheet.

For each group of modules, I had a different blame log, since the complete relicensing seemed too big a task, and logical groups could be relicensed individually.

Then, with an export of the csv, the raw blame.log, a bit of awk, grep, cut, I had a list of people remaining to mail. This list would get update, after every batch of answers.

Mailing

The next step is the obvious one, mailing the developers. I did that with a small Python script made by Ludovic.

This was a short letter, with explanations and a prototype for an answer.

I have mailed no more than 30 contributors in a single batch, because processing the answers (or lack of) could be quite long.

Answers and reactions

In average, the answers were like this:

  • 25% of the emails just bounce,
  • 15% of people answer positively during the next hours,
  • 10% of people answer positively during the next days,
  • 50% do not answer at all.

After a second and a third mail, I usually got around 50% of positive answers.

A few points are interesting:

  • People answering fast were usually the ones that were GPG-signing their mails (this was asked in the LGPL letter).

  • Quite a few people were surprised that I would mail them (“I only wrote one small commit”, “This was minor code”).

  • Many people explained me they did not care what license the code was under, as long as it was open source. Some of them gave a full VLC relicensing authorization. Two even gave all the transmittable rights to VideoLAN.

  • A few people thanked me for taking the task of relicensing.

Finding and stalking

Now is probably the harder part, where you will think I am crazy.

So, after the first part, we get usually half of the answers. We need the other half.

For the bouncing emails, finding quickly an updated email online, fixing the videolan aliases solved many issues.

But for the rest…

Techniques for stalking

The first ones are obvious:

  • Ask older contributors, especially for people from Ecole Centrale Paris for contact
  • Use google (most of the time, it gives a link to VLC, though)
  • Look on freecode, github, gitorious for an alternative contact
  • Find a website (they are geeks!).

Some are a bit intrusive

  • Use LinkedIn and ask for an introduction
  • Friend them on Facebook
  • Create an account on another weird social network
  • Ask one of their friends and annoy them
  • Ask their boss.

Or clearly bad:

  • Find their phone in a Phone Directory
  • Use whois on some of their domain
  • Use whois on a domain hosted on the same machine of their domain
  • Go to their workplace.

Contact

Then, I used IRC, mails on multiple addresses, phones, fax and other means to get them to mail me.

Over, over, over and over, and over.

This could get really annoying to do, to be honest.

Getting rid of people

At some point, you realize that some of the contributors are not going to answer.

So, now, you need to actually analyze their code contributions and starting working on it.

First, is there code still in place and not deleted? Is the license LGPL, by any chance?

Then, is this module very important? Can we drop its priority?

Then, is this feature important or not?

And then, I deleted some code, reverted some commits, rewrote some and or isolated code from them in a separate files to reduce the future impact.

This is not nice? Well, not answering is not nice either.

Follow up

You can read the last part about this relicensing.

Jean-Baptiste Kempf

Comments

  1. On 21 May 21210, 12:19 by Jean-Baptiste Kempf

    Of course, dealing with rats is easier than dealing with developers.

    Let’s hope so! And I agree this is not doable for the Linux Kernel, but VLC contributors community is fairly sized :)

    Thanks for the cool comment!

  2. On 20 May 20200, 11:51 by mkerrisk

    An extraordinary piece of work! it’s often said that there’s a quite practical reason that, to take an example, one can never relicense the Linux kernel to GPLv3: even if all current developers agreed (which they don’t), the difficulty of tracking down all of the contributors or rewriting their contributions is considered too great.

    However, if you’d asked many people whether it would be possible to do something on the scale that you’ve done, probably the majority would have said it’s impossible. VLC has in effect pushed the envelope of what is possible. While the kernel may never go through such a relicensing, one day there may be even bigger projects (than VLC) that do the same.

    I am reminded of an analogy. New Zealand (my homeland) had no land mammals before the arrival of humans about a thousand years ago. The Maori brought a species of rat, and the Europeans settler brought many more types of animals (including the even worse “Norway rat” – what many of us know as the common rat) that decimated a pristine bird population.

    Rats are of course “impossible” to get rid of except in very small land areas. But, in New Zealand, they’ve been steadily pushing the envelope of what is possible, by eliminating rats from ever larger land masses. In the last decade, for example, rats were eradicated on Campbell Island (http://en.wikipedia.org/wiki/Campbe…), which is 112 sq km (43 sqm), and bird populations are returning to ancient levels. Once upon a time, people would have said rat eradications on such large land masses were impossible, but the boundary of the possible has been shifting steadily.

    Of course, dealing with rats is easier than dealing with developers.

  3. On 15 May 15150, 10:41 by rogerdpack

    Wow I cannot even imagine starting such a monumental task. Wow. That sounds soo nuts thanks for taking the time to do this.

  4. On 15 May 15150, 1:27 by salt

    wow! i did not even managed to re-licence a 10 contributors manual…