☞ Two Endings and a Beginning

☂ Causality Essay Published

In response to several comments, I’ve just extracted my discussion of direct and indirect causality from my recent article on why “which licence” is now the wrong question in understanding open source communities. The discussion can found as the essay Direct and Indirect Causality. I’m keen to get it fixed up so your comments are invited (here).

♥ Thinking of OOoCon

Hungarian Parliament, originally uploaded by webmink.

My best wishes to all my friends attending the OpenOffice.org conference in Budapest this week. With all of the ups and downs and pluses and minuses of the OpenOffice.org project, it is still entirely remarkable what it has achieved over the decade since Sun made it open source, most notably:

  • Forced Microsoft to open up their file formats – ODF is a true phenomenon and one of the wonders of the FOSS world
  • Provided true competition for productivity software in public administrations globally
  • Kept going all these years!

Whatever happens next for the project (and I sincerely hope it’s excellent), we can all be proud of what we’ve achieved collectively against all odds. Have a great conference, and enjoy visiting the Hungarian Parliament (pictured above, feel free to use my photo!)

♫ Holiday Gift

★ GNU/Linux – finally it’s Free software

A Bold GNU Head
This may come as a shock, but all GNU/Linux distributions to date have been built with essential software under a licence that clearly meets neither the Open Source Definition nor the Free Software Foundations’ requirements for a Free software licence. The tenacity of a Red Hat hacker has finally solved this problem for everyone, however, and I’m proud to have played a part too.

One of the long-running projects I had at Sun was to get the (pre-GPL, permissive) license on Sun RPC changed.  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 and Fedora, both keen to be 100% Free-licensed software.

The way the RPC code was originally licensed was exceptionally liberal. Written in 1984 or earlier (well 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. The code was circulated on Usenet and was extensively cut-and-pasted into software being developed then –  notably the parts related to NFS.

What was liberal is now conservative

Times change. During the 80s, Richard Stallman’s Free Software movement established the four freedoms, with the GNU General Public Licence (GPL) appearing in 1989. 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. The Sun RPC Licence did not qualify, becuase of the restriction on distribution as-is – an “additional restriction” that also meant the licence is not GPL compatible. 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. The members of the Fedora community were also engaged in a similar effort.

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 in 2008 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 – notably by Tom “Spot” Callaway – 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 were already much in demand.

  • First, the old code is often very old. The people who wrote it may no longer be with the company, it is no longer part of a current product, and people sometimes can’t even be sure where it originally came from before Sun put it on Usenet. You have to find the original code if you’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 would be to determine if Sun actually has the right to change the license at all.
  • Third, someone had 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 was touch-and-go whether anyone could find either the staff time or the budget to run a license change through to completion.

With help from friends both at Debian and 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 early 2009, we finally reached the point where we felt comfortable to relicense the Sun code involved. I got permission from both the legal team and the management at Sun and announced (and blogged) at FOSDEM in Brussels that it would be OK to relicense the old code.

But then there was some sort of foul-up after it was all agreed and Red Hat (who were making the change) never received documentation of the decision that was sufficient to give them confidence it was all over. They tried contacting people at Sun, but by then acquisition of Sun by Oracle was in full swing and no-one was allowed to make any changes affecting copyrights any more.  Even though it had all been decided, no-one in the legal department was comfortable giving Red Hat the documentation they felt was essential to confirm the decision. So the changes were rolled back, much to everyone’s disappointment (not least mine).

But Spot persisted and finally got confirmation in an acceptable form from an Oracle VP, Wim Coekaerts, that permission to make the change had indeed been granted. So, at long last, the licence is changed, glibc is Free software and we can all breathe easy that this can’t cause copyright infringement suits against Linux. Congratulations to Spot for his tenacity! Spot has more information and his view of what happened over at LiveJournal.


[First published by ComputerWorldUK]

☞ History In Action

  • Google Code Blog: An update on JavaOne
    Google pulls all their people out of JavaOne. That’s going to be a big hole in the agenda since they employ all the good speakers… (well, most of them)
  • Bradley Kuhn’s recollections of the middle of the process – worth reading along with mine & Spot’s.
  • Interesting and useful exploration of the history of OpenSolaris and Solaris puts Oracle’s actions into perspective. It also shows why Illumos is a true open source community with a bright future, as it’s the coming together of skilled developers who each have different reasons to need a Illumos and are synchronizing those fragmentary interests in an open and equal community around a shared commons.

☞ Fixing Linux

  • One of the long-running projects I had at Sun was to get the (pre-GPL, permissive) license on Sun RPC changed so that GNU/Linux could become Free software at last after decades of quietly using Sun RPC under a non-Free licence (Sun never cared).

    I had it all agreed by Sun’s legal and management teams and was given permission to announce it at FOSDEM in 2009 (which you can see in my blog), but then there was some sort of foul-up after it was all agreed and Red Hat (who were making the change) never received documentation of the decision that was sufficient to give them confidence it was all over. So the changes were rolled back.

    Tom “Spot” Callaway at Red Hat persisted and finally got confirmation from an Oracle VP that permission to make the change had indeed been granted. So, at long last, glibc is Free software and we can all breathe easy that this can’t cause copyright infringement suits against Linux. Congratulations to Spot for his tenacity! Read his view of what happened.

★ “Which Open Source Licence” Is The Wrong Question

Mesa Verde Cliff Palace DetailVarious commentators are beginning to pick at the threads of the rediscovered collaborative model for open source now that the “open source bubble” is being superseded. This is a return to what many of us regard as “real open source” (the co-development of software by a community of people who align a fragment of their self-interest in order to do so, using their software freedoms under an open source license and open governance).

Glyn Moody asks the question of which open source licence is best for the new wave and comes to the conclusion that the problem that’s faced open source projects in the “bubble” has been less licence choice and more the practice of corporate control via copyright aggregation. I have more to say on this subject in a forthcoming essay.

Glyn’s article has triggered a somewhat strident response from Matt Asay, who picks up a surprising message that I find hard to read in Glyn’s article. He asserts that Glyn (and I) are advocating that the businesses participating in the new collaborative wave should use proprietary software to earn their revenues. This assertion appears to flow from a conviction the only way a business can succeed is by keeping some sort of copyright (or patent) control that creates an artificial scarcity.

I believe the seed of this view is a riff on one of the oldest arguments in software. To comment on it, I first need to get philosophical for a moment.

Cause and Effect

There are two views of the place of “cause and effect” in the world. One believes in direct causality, the other in systemic causality. Both are correct much of the time, so the difference between them rests beneath the surface of most realities. Both are tools in guiding behaviour and predicting consequences.

In most circumstances, direct causality seems the obvious interpretative lens for the past and predictive lens for the future. We are most comfortable when we can draw clear circles around causes and thick lines between them and their consequences. We admire the “chess players” of society who can draw long chains of clear circles and thick lines, and for most of us the ability to mentally calculate chains of cause and effect is limited to only a few steps.

But certain systems involve a longer chain of lesser causes and effects that makes a focus on the individual steps unhelpful. Things like evolution, national economics, global warming and terrorist networks all need a systemic view if they are to be properly understood, and a focus on what the individual can directly prove leads to bad choices. These systems are especially difficult for people with “just do it” attitudes, who find it hard to take “on faith” that they should act in a contrarian way because of a larger system which can’t be seen and computed in its entirety.

When our outlook is dominated by direct causality, we seek control over causes. When our outlook is dominated by systemic causality, we seek influence over the network of causes and effects. In many cases, both outlooks lead to the same decision, but as we have moved to a meshed society, the importance of systemic causality has risen. Every cause has an immediate effect, but to believe that effect is the only consequence is increasingly a risk.

If the distance to the effect we seek is short, and that effect is the only outcome that matters, control is obviously desirable. But if the distance to the desired effect is large and filled with many connections, it’s better to collaborate and co-operate with other participants and prioritise influence over control.

Two Views of Freedom

The tension between direct and systemic causality lies at the heart of the endless debate between whether BSD-ish (permissive) approaches to software licensing are better or worse than GNU-ish (copyleft-based) ones. The GNU-ish view takes a directly causal view, believing that the freedoms of software users are so important that there should be a direct compulsion on every user to share improvements they make to code. Glyn is clearly in the GNU-ish, directly-causal camp, concerned that people may not “give back”:

“This is the classic free-rider problem that the GNU GPL was designed in part to avoid. It means that contributors to Apache-licensed projects must be willing to accept that their work may well end up in closed-source products, maybe multiple times.”

The BSD-ish view is systemic, believing that any innovative user of the code will want to add their improvements to the commons so that the community around the commons will maintain them collectively, freeing the innovator to spend time elsewhere.

This is the view the Apache Software Foundation best expresses, and it clearly works well for them. They have large numbers of participants in a large number of successful projects, and there is no “tragedy of the commons” at work – self-interest does not require selfishness. It is in the interests of every participant to contribute their work to the commons upon which the fragment of their interests relates. Doing so reduces their own costs, increases the surface upon which the community innovates and gives the maximum return. People who don’t add their work to the commons are condemned to maintain their own work, alone, for ever…

Asay makes an unwarranted leap in his description of me in his article. I am a firm believer in the concept and philosophy of software freedom, but that doesn’t mean I believe the only way to achieve it is through directly-causal compulsion. Indeed, I tend to believe that the key to a successful open source project and community is to studiously maintain equality among all the participants so that no one participant can become “more equal” than the others, giving systemic effects free rein.

Contrary to Asay’s accusations, I’m not interested in the sort of “purity tests” into which FOSS fundamentalists spiral; I do, however, object to use of the term “open source” to describe a project where the participants are not all equal-by-rule. The most important factor is not whether it’s OK for community members to create proprietary code from a project; it’s whether everyone has equal rights. I don’t believe creating artificial scarcity through proprietary code is a smart or scalably profitable action, so frankly Asay’s accusation I’m promoting proprietary development aren’t offensive; they are just irrelevant.

So Which Licence?

That’s where the argument of which license to pick needs to follow the sort of logic Carlo Daffera offers rather than the GNU-ish vs BSD-ish path. It’s hard to believe we are still having “which licence is best” arguments eleven years after the founding of OSI, but we are. Arguments over licenses rarely matter these days; all open source licenses are fully gamed. The reason collaborative projects are resurgent is not a “which licence is best” argument at all; it’s a “level playing field vs artificial scarcity” argument.

The reason I believe “Open Core” approaches will become scarcer and scarcer is that the control-freak behaviours they necessitate (like demanding copyright ownership as a precondition of community participation) just don’t lead to the greatest growth. I’m not sure I care much which licence you use, as long as everyone in your community has the same rights so that the most people possible can participate. That’s what will grow the community – and thus the opportunity – for everyone.

[First published on ComputerWorldUK]

☞ Nothing in common

  • This is outstanding; I can now have WordPress ping me when someone comments on my blog (as well as subscribing to other blogs to see when they are updated). Lovely feature, thanks WordPress.
  • By way of a bookmark as I am sure I will need to refer back to this one day as it contains Resolution 1 (proposed by Oracle, seconded by BEA) “It is the sense of the Executive Committee that the JCP become an open independent vendor-neutral Standards Organization where all members participate on a level playing field .”
  • This free sampler on Amazon US (only) has ten pretty good tracks as long as you are a fan of tango/bossa nova-style music.

☂ The Aggregator Is On

Just a reminder that, in addition to this blog, I still maintain an aggregator over at webmink.net which collects all the posts I make from various places. If you read mainly through a feed reader, you may prefer to follow webmink.net as that way you’ll also see all the posts I make on ComputerWorldUK as well as photographs from Flickr and occasional posts elsewhere. If you have an Amazon Kindle, you can also subscribe to webmink.com so you can read everything on your Kindle.

%d bloggers like this: