Oracle Blog

OpenOffice.org Tipping Point?

I've been engaged with the OpenOffice.org community for a number of years, and I'm as aware as anyone that it has had some historic issues with its contribution processes. However, all the signs I see suggest those have been or are being addressed - most notably via the Engineering Steering Committee, but with a number of other important changes (including huge improvements in responsiveness on patch integration in response to earlier complaints). I hear there's more to come, too - Jim Parkinson, the VP who employs all Sun's contributors to OpenOffice.org, has a blog on the blocks about a new OpenOffice.org Advisory Board.

The result has been a fresh start over the last six months, with both IBM and Red Flag 2000 choosing to participate for the first time alongside Sun, Novell and others, and with a fresh road map and new ideas. I'm sure there remain issues to address, but what with all this improvement as well as the strength of the ODF community, OpenOffice.org is on the up-tick. As I said on the panel at OOoCon, we're reaching a tipping point for ODF and OpenOffice.org that is making the opposing forces sit up at think.

In the midst of all this, I see my friend Michael Meeks has been challenging Sun in a creative way - it even made Slashdot today. I remember the days when Michael used to enthusiastically encourage OpenOffice.org community members to sign the contributor agreement, as recently as last December...

Thing is, there's way more to it than Michael is discussing. It seemed to me that Michael has been looking for an excuse to publicly challenge Sun for ages, and finally found his excuse in some well-meaning actions by his employee Kohei. There are two independent issues here that Michael appears to be intentionally confusing in order to make his competitor look bad.

Community Norms

The first is an attack on community norms. It's tempting to use a real-life example but here's a work of my imagination. Let's detach the Novell-Sun competitive issue and work by analogy. Imagine you decide you want to work on Apache Roller, their great new blog server project. You create a fantastic new capability that, when people see it, they realise it needs to be part of Roller - just like you hoped.

You tell them "look, I'd love to contribute it. I have put it under the Apache v2 license. Please accept my contribution." They say to you "well, that's great, but it's a community norm that we ask people to sign Apache's contributor agreement" (yes, that is an Apache requirement in this sort of case). You say "no way Jose" and the Roller guys say "well, we can't accept your contribution until you do". This goes on for a while and it's clear you're not going to budge. All the same, the users make it clear that the feature you are implementing (which is just like one we all saw in WordPress) is just going to have to get implemented.

Finally, some other guys on Roller decide they are going to reluctantly do an independent implementation of the same function. It will use none of your code, and probably work rather differently, but it will make sure Roller gets that feature that Wordpress has too. It's a waste of everyone's time, but Apache has those rules to protect all the members as well as their own administrative functions.

Despite Michael's framing, this is the same situation he describes. An existing community, with existing and well-understood norms, is approached by an enthusiastic developer who breaks the community rules and refuses to accept the correction he receives. The rules were not made to thwart Kohei - they have been there for years.

Contributor Agreements

The second issue is the subject of contributor agreements. They are very common - the FSF has one, so does Apache, and so do projects like MySQL and even, I believe, some of Novell's own projects. There are several reasons to have them:

They act as an assertion of originality. By saying you grant rights to another party, you implicitly but demonstrably assert you have the rights to begin with. That means the community can have greater confidence that there are no submerged rights issues waiting for the future.

They allow the copyright steward to act on behalf of the community in the event of any license violation. FSF has done this before now, and Sun is more than ready to defend the projects where it is steward in this way.

They allow maintenance of the license in the future. Without aggregated copyright, a switch from v1 to v2 of a license (for example) involves locating every single contributor and getting their agreement to the change. If any of them decline or even ignore the request, the code will need re-implementing. It took Mozilla two years to complete this when they re-licensed. The only cases where this isn't necessary are those that have what I call "class A licenses" (like MIT or BSD - more in my white paper).

More controversially, it allows dual-licensing to parties (such as corporations) who are too worried about open source to work only under an open source license but are willing to work through a mediator.

In many cases (including some very well-known open source projects) it also allows the original donor to offer commercial offerings, thus ensuring the project continues to have engagement funded by its major participants.

The Sun Contributor Agreement is in my view the best there is. Sadly the OpenOffice.org community doesn't appear to be using the latest, much-improved version - maybe that's the problem? We've been evolving it to have some very desirable community attributes:

It does not require the contributor to surrender their copyright. They share their rights instead and retain the freedom to do whatever they want with the code contribution.

It has several layers of agreement, so that if one proves to be unenforceable in some jurisdiction, there are other layers to ensure the community still has aggregated rights.

There is an "open source covenant" - Sun promises that any contributions that get used will always remain as Free software wherever else they may end up, so that proprietary-only forks are impossible.

It's a shame Michael has chosen now - a turning point in OpenOffice.org and a moment when Sun has radically improved the SCA in response to broad feedback from many communities - as a time to mount a fresh challenge to Sun that by implication also harms OpenOffice.org. And when you distill out all the details, that's what this turns out to be even by Michael's admission - a competitive issue, not a community one.

Update Oct-17: Someone pointed out to me that Novell demands copyright assignment on Evolution and on Mono, and what's more the agreement they require involves giving Novell the copyright, not sharing it, and includes the same language Michael criticises as inadequate about subsequent open source licensing. What gives, guys? You criticise Sun for doing the same thing Novell requires of contributors? Right in the area where you work?

The FSF and Apache operate in slightly different terms: they are non-profits and act as stewards for the project. Sun (and MySQL, which I think is a valid example) are seeking to act as steward _and_ proprietary commercial exploiter.

And you're right saying Novell have done that before; I was personally involved in a project where Novell required copyright assignment, and I know first hand how many potential contributors that effectively turned off. Hopefully they have now learned that lesson.

I think it's reasonable for a project to be run like that when the company exploiting the software is the major and primary developer of the code base, like MySQL. OOo is changing, though, and it seems less appropriate, for a variety of reasons:

\* why should they be the only contributor able to exploit the code on a proprietary basis?
\* how can the project be governed fairly to all commercial contributors, when one is "more equal" than the rest?
\* how can you expect large contributions on that basis when there is no quid-pro-quo or equality?

Sun is acting as gate-keeper and steward in more ways than just copyright, and it doesn't seem that copyright is the only or even the main problem with the OOo project.

Sun could do a lot worse than putting together a non-profit foundation to manage the OOo project equitably and fairly for all participants.

It can of course choose not to do that, but that is effectively limiting the community; Sun will always have to be the primary developer because there's no other option on the table.

You hereby grant to Sun a perpetual, irrevocable, non-exclusive, worldwide, no-charge, royalty-free, license under
any patents owned or licensable by You at any time without payment to third parties, to make, have made, use, sell, offer
to sell, import and otherwise transfer Your Contribution in whole or in part, alone or in combination with or included in
any product, work or materials arising out of the Project to which Your Contribution was submitted, and to sublicense
the foregoing rights to third parties through multiple tiers of sublicensees or other licensing mechanisms at Sun's option.

state that Sun can take your contributions, and sell them for $$$? This doesn't seem like a particularly fair licence to me.

@Alex: I agree with most of what you have said. I've thought long and hard about a "non-profit foundation". I love all the hypothesising about the money Sun is raking in from StarOffice; truth is StarOffice hasn't exactly been a gold mine anyway, and even non-profits have to earn enough money to keep the doors on.

Given the nature of the OO.o code, the people who wrote it and are currently the core committers will likely remain as such, regardless of who the copyright steward is. Starting an independent non-profit solves nothing by itself (it actually creates a bunch of issues), and most people who ask for a "foundation" are actually asking for a reform of OO.o's processes.

As I indicate above I think that's well in hand, though there is still more to do. I'd personally want to explore a new non-profit once the reform is more concrete, rather than making the situation worse by starting from the sort of politics people are trying to stir up right now.

@Simon: I think a reform of processes is necessary, but a Foundation would provide reform of how those processes get created, which I think is vastly more important.

OOo's site continues to be end-user allergic in obvious ways (e.g., the 2.3 release notes - linked off the front page - start "These notes contains changes between SRC680_m200 and SRC680_m225 and OOG680_m1 and OOG680_m5" and go rapidly downhill). If you want to try and contribute, you have to disappear down the rabbit-warren website before you find that the 'website' project has _seven_ mailing lists. Do I want 'issues', 'dev', 'support', 'sc40', 'cee351' ???

Pretty much anyone can help hack a website, and lots of people are competent to fix those deficiencies. Are they going to bother? I certainly wouldn't.

With such a simple thing as the site, if that isn't right, is there any hope for more complex contributions? How did these processes get put in place, and why after all this time is it still so hard?

I don't think this is just simply about politics. There is no culture of contribution in OOo. When you say, "the people who wrote it and are currently the core committers will likely remain as such, regardless of who the copyright steward is", what you're doing is perpetuating a self-fulling prophecy. "Nothing will change if we do this work, so why do the work?".

OOo is huge, vast, and no-one [sane] underestimates that. Sun are clearly going to be a significant development source, and if you stopped tomorrow OOo would stall hard, if not die completely. That's not healthy. A foundation doesn't fix these problems itself, but a change of mindset is needed. If someone was to ask you in an ideal world what the OOo project would look like, would you seriously say "still being run by Sun"?

@Simon: the terms Brenton listed are not the same as the ones most Free Software contributors work under.

Usually there are some strings attached in the form of attribution requirements or restrictions on the types of derived works that are allowed. The SCA effectively gives Sun a "no strings attached" license to the work, which is quite different.

I fully understand why Sun wants these rights, but I also understand why people may be hesitant about signing away their rights.

Perhaps if Sun was willing to use their special position as joint copyright holder to provide additional rights on modifications to substantial components that originated from external contributors people might be a bit more understanding of Sun's position ...

@ Alex: Thanks for the comments. I believe the change of mindset is in process - see news of the new "Community Advisory Group" on Jim Parkinson's blog today for example[1]. As an OpenOffice.org user throughout my home and work life I am as keen as anyone to get it on an even keel.

As I say above, I think it's regrettable we're looking back at problems the community has already considered (notably in Koper) rather than looking forward to the improvements all the changes will bring.

@ James: Yes, I agree this is different from the way GNOME works, where work is conducted and aggregated only under the terms of the FOSS licenses the community uses. But plenty of communities have this two-phase approach, with either the founding company or a specially-created entity acting as a "bridge" between contributors. This has the benefits I list above, but as you point out it also requires a degree of trust in the copyright steward.

In the past I've contributed to FSF run projects, and although I assigned my copyright on those changes, it wasn't a "no strings attached" assignment.

The assignment agreement went into detail of what sorts of terms they'd license my code under. So while it allows them to relicense under GPL3, and pursue copyright infringement cases, if they tried to put my code under a non-free license, it would void my copyright assignment. So I am not in a position where I have to trust the FSF (although I do trust them, given their historical behaviour).

With respect to the ASF, contributions get released to everyone on equal non-restrictive terms, so I don't think it serves as an analogue of the OpenOffice.org situation either.

In contrast, Sun is actively using its special position as copyright steward of OpenOffice.org to do things that no one else can do (in the form of StarOffice releases), so it isn't just a theoretical fear of what the steward may do. This is definitely going to be a factor when other companies or individuals consider doing substantial work on the project (as appears to be the case with go-oo.org).

@James: "I fully understand why Sun wants these rights, but I also understand why people may be hesitant about signing away their rights."

Considering the hundreds of millions of dollars that Sun has spent on purchasing, developing, licensing, supporting and furthering OpenOffice, it seems more than fair that they have the right to use it and external contributions. There would be no external contributions without their initial work.

As far as the FSF and copyright assignment, don't you think that many people feel betrayed by what Stallman did with the GPLv3? I bet there are some contributors right now that are a little sorry they give them that power.

I tend to take the approach that many Amiga programmers did years ago: if you find my code useful, great, use it for whatever you want!

By the way, your phrase earlier about "sign away your rights" is inaccurate. The SCA gives sun \*join\* ownership, not exclusive ownership. This means that you have all the rights you did before, except Sun has them too.

Novell's issue is that everyone's moving away from SLES, and they've destroyed their reputation in the open source community by tainting Linux IP with a Microsoft license. The only thing left for them to do is spray venom at others now. Reminds me of Sun a few years ago.