Thursday Feb 12, 2009

Old Code and Old Licenses

Brussels Cathedral towers and moon

I was in Brussels at the weekend to attend FOSDEM, one of the handful of "real" Free software developer conferences I attend each year (another is LCA which I went to in Hobart two weeks ago). I was once again honoured to be able to briefly speak to the assembled audience as I did two years ago. This time I announced a small license change to some obscure code, written before the GPL was finalised, to fix a problem for Linux.

Why would that interest anyone? Well, the code in question is the original implementation of Sun RPC, which went on to become RFC 1057 and today is a core part of every UNIX-family operating system. Including Debian GNU/Linux.

The way the code was originally licensed was exceptionally liberal. Written in 1984 or earlier (before the GPL existed), it allowed unfettered use of the Sun RPC implementation in any program for any purpose. The only significant restriction imposed, entirely reasonable to most eyes then, was to say that the module itself could not be sold as-is, only as part of a larger work.

What was liberal is now conservative

Times change. During the 80s, Richard Stallman's Free Software movement established the four freedoms. During the 90s (1994-7), the Debian Free Software Guidelines established a need for the code in their distribution of GNU/Linux to be fully Free software. By the beginning of this decade, Debian maintainers were making a serious effort to audit the millions of lines of code in Debian for true DFSG compliance. And in 2002, they found the old Sun RPC code in core Linux files glibc and portmap.

Reading the history for Debian bug 181493 tells the next part of the story. Inside Sun, the challenge of finding the code in question was Just Too Hard, and the things reached an uneasy impasse.

The issue came back to life last year when the bug was re-asserted as part of the run-up to the Lenny release. I was contacted both by folk at Debian - notably my friend Ean Schuessler - and at Fedora asking if there was anything I could do to accelerate licensing of the old code. Both projects had decided to take a hard line and removing the code from glibc and portmap was going to be a real headache, especially for the stability of glibc.

Challenging

The task of relicensing old code can be pretty time consuming and involves people who are already much in demand.

  • First, the old code is often very old. The people who wrote it are no longer with the company, it is no longer part of a current product, we sometimes can't even be sure it ever came from Sun. We have to find the original code if we're to make any progress at all. Doing so might mean retrieving crates of paper from long-term storage and crawling through them.
  • Second, once the code is located, a legal expert has to look at the origins of the code and maybe once again crawl through retrieved paperwork to find the contracts behind the code. Their job is to determine if Sun actually has the right to change the license at all.
  • Third, someone has to believe it is their job with respect to the code in question to act on Sun's behalf to evaluate the change, authorise it and bind the company officially.
All this is time-consuming and expensive, and without a current code owner inside Sun it's touch-and-go whether anyone can find either the staff time or the budget to run a license change through to completion.

With help both from Ean and friends at Debian and from the Fedora team at Red Hat, we managed to identify some modern OpenSolaris code that matched the code in Linux. This was a key step. It meant we could trace ownership through the comprehensive records for OpenSolaris and start the process moving. By last week, we finally reached the point where we felt comfortable to relicense the Sun code involved.

Relicensed

On Saturday I was able to tell Europe's Free Software developers that the licenses on the RPC code are no longer a barrier to Free software - we'll change the license to Sun's copyrights in the RPC code to a standard 3-clause BSD license, allowing inheritance of that licensing by both Debian and Fedora. I'm delighted to have been able to fix this problem, which arose not because of failure but because of the success of software freedom over many years and becuase of Sun's early commitment to it.

Thursday Jun 19, 2008

Free, Compatible Java at last

Ripening pear

Yesterday was a landmark that plenty of us have been working towards for nearly a decade. As MR and I have been indicating for a while now, the remaining obstacles to a fully compatible and Free implementation of Java SE have all been removed by efforts like renegotiating the terms for the source of Java 2D and various community members (Sun and others) re-implementing some of the other code.

But the proof is in the fruit of the process, and yesterday it was confirmed that the implementation of OpenJDK 6 that the Fedora community has packaged does indeed pass the TCK. This is a huge achievement for everyone who has been involved - the Fedora team that Rich mentions in that last link, the team that MR leads at Sun, the team that I lead, plus the many, many people who have worked for a Free Java for so many years.

Some may fear, as Fabrizio does, that this (and the many GNU/Linux, OpenSolaris and BSD packages that will follow) will lead to such a diverse set of Java implementations that "write once, run everywhere" is doomed. I don't agree.

What made Java so compatible, in my view, was the fact that almost all versions found in the wild were built with Sun's class libraries even if they used a different VM. With Sun opening the reference implementation and then the community taking it on and embracing it, we now have that same basic code-base at the root of Free implementations everywhere. And we now have the benefits of community diversity to ensure many eyes are making bugs shallow and that innovation is accelerated.

Free, compatible Java everywhere. That's exactly what we all wanted, and we have it at last.

About

Thoughts and pointers on digital freedoms and technology markets. With a few photos too.

Search

Archives
« April 2014
MonTueWedThuFriSatSun
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today