LWN.net Logo

GCC debates project governance

By Jake Edge
April 1, 2009

When we last looked in on GCC, the 4.4 release branch was held up by licensing issues, specifically the exemption that would allow GCC plugins. Since that time, things have progressed—there is now a 4.4 release branch—but the license issue has not yet been completely resolved, though a new revision is available. But, since the license change is not needed for the 4.4 release, some GCC hackers are unhappy about the manner in which the release was held up. It has led to questions about the roles of the Free Software Foundation (FSF) and the GCC steering committee (SC) have in controlling GCC development.

Holding up a release for licensing concerns is seen by many as a reasonable request that the FSF might make. That organization is very concerned about licenses, in general, and they certainly think it is important to get the license right before releasing any code under the license. It is the concerns expressed by GCC developers about the wording of the runtime library exception that led to the license review. But Richard Stallman, acting for the FSF, did not ask that the release be delayed—at least directly—he asked that no release branch be created. The net effect on the release process is the same (i.e. no release), but the impact on development of new features destined for GCC 4.5 is a large part of what irked the GCC developers.

The other piece of the puzzle is that the issue is essentially moot: there is no plugin API in GCC 4.4 that would require the runtime library exemption changes. Stallman is adamant that proprietary GCC plugins be outlawed before such an API gets added. But, since the API isn't present (yet), the license changes aren't needed yet either. So, while it makes sense to take whatever time is required to get the license right, many seem very puzzled as to why that would need to hold up the release and new development.

There has never been a clear explanation of why the release branch needed to be delayed, at least publicly. Either Stallman relented—perhaps due to completing the license rewording—or the SC eventually decided to override his request because the release branch was created on March 27. But there was clear discontent in the ranks that the SC could, evidently, be pushed around so easily by the FSF. This led to questions about the role of the SC, how much control over "technical" decisions the FSF has, and, in general, how the project is governed. As Daniel Berlin put it: "Where is the pushback by the SC onto the FSF?"

Berlin's complaint was that it has taken the FSF too long to resolve the issue, to the point where it is now (and has been for a bit) seriously impacting GCC development. Because the license change is not required for this release, there is no good reason to delay it. Ian Taylor was fairly blunt:

I'm a strong supporter of the FSF, but I agree with Danny. This has gone on far too long. Releasing gcc 4.4.0 with the same licensing as gcc 4.3.0 will do no significant harm. The FSF is acting inappropriately in restricting us in this way.

In response to Berlin's criticism of their response, SC member David Edelsohn noted that there were things going on behind the scenes:

Why do you think that the SC has not pushed back? Not all diplomacy is best done in public. This is frustrating for all of us.

But a lack of communication from the SC to the greater GCC community is part of the problem, according to Berlin:

Okay then, as the leadership body of the GCC community, part of your responsibility is keeping your constituents (the rest of us!) informed of the status of things troubling them. I don't believe saying "we have given the FSF a deadline to meet in the near future" would at all endanger any diplomacy, and i'd love to see a counter argument that says otherwise.

The discussion then turned to the role that the FSF plays in GCC development. SC member Joe Buck points out that the FSF holds the cards: "The problem in this instance is that the SC has little power; it's the FSF that's holding things up and I don't know more than you do." But that doesn't sit well with some. Steven Bosscher asks:

I don't understand this. Why does the SC have little power in this matter? Surely you could decide to ship GCC 4.4 with the old license, as the official GCC maintainer? But you *choose* not to use this power (perhaps for good reasons, but I'm unconvinced).

Others believe that the FSF should be in complete control. Richard Kenner outlines how he sees the relationship:

The matters to which we defer to the FSF are any matters that they *ask* us to! They own the code. If RMS, for some reason, decides that he doesn't like the phrasing of a comment somewhere, we have to either convince RMS he's wrong or change the comment.

As a practical matter, the FSF *delegates* most of their responsibilities to the maintainer of the package, but they can undo that delegation as to any matter any time they want.

Berlin would like to see the governance structure for GCC more clearly spelled out. The SC web page seems to indicate that its role is to prevent the project from being controlled by any party. But whether the SC is supposed to prevent the FSF from controlling its own project was disputed. Ultimately, the developers do have some power as Buck states: "There are checks on FSF control in the sense that the project can be forked and developers can leave."

That kind of talk inevitably leads some to mention the egcs/GCC split, and subsequent join, as an example of the power that the development community has. No one has said they are seriously considering a fork, but the GPL certainly allows such things if the FSF's hand gets too heavy. Jeff Law doesn't see it coming to that:

FWIW, I don't think we're anywhere near the same kind of tipping point we faced a dozen years ago. I believe both sides learned lessons along the way and I actually see evidence of that in the simple fact that we've got a license and blessing to go forward with a plugin framework.

Clearly some developers are chafing under what they see as unnecessary interference in technical issues from Stallman. But as Buck points out, Stallman does not dictate technical details to GCC. Various decisions (bugtracker, version control, etc.) have gone against his express wishes. In addition, contrary to Stallman's aversion to C++, Taylor has used that language for the gold linker, and currently has a branch that implements some of GCC in C++. He sees things this way:

While agreeing that the FSF is the legal owner of the code, I personally consider the implementation language to be a technical detail which the FSF has no special control over. We can consider their input, but we need not follow it. This is distinct from licensing issues, where we had to either move to GPLv3 or fork into an independent project.

This discussion will hopefully lead to a clearer picture of the governing structure of GCC. With luck, it may also make Stallman and the FSF more cognizant of the perception that they are meddling in technical issues to the detriment of their relationship with at least some in the community. No one in the rather long thread could come up with any sensible reason that the release branch should have been held up. At best, that means that Stallman didn't communicate the why, which leads many to a sense that he is being rather arbitrary.

In the meantime, though, GCC is preparing for the 4.4 release. Release manager Mark Mitchell created the release branch, Bosscher is rounding up folks to update the 4.4 changes page, and work is proceeding towards a release. That also allows the changes for 4.5 to be added to the trunk, which puts that release back on track.

With GCC 4.5 there will likely be a new plugin API for which the license change is needed. On April 1, Edelsohn announced that the revised runtime library exception had been released. It explicitly allows for Java byte code to be used as input into GCC, making a "compilation process" using that input eligible for the runtime library exception. One of the other concerns, regarding independent modules, will be addressed in the FAQ, though it has not been at the time of this writing.

Assuming the new exception passes muster on the gcc-devel list, and no problems are found that would require adjustments, it will presumably end up in the 4.4 release. While that should conclude this particular issue, the overarching governance questions will remain.


(Log in to post comments)

GCC debates project governance

Posted Apr 2, 2009 13:23 UTC (Thu) by stock (guest, #5849) [Link]

The OpenSource Economy was even during the early 90 the best of the
world. Once you understand that outsourcing of valuable source-code to
China is actually robbery at bright daylight, in Doc Searls's
terminology as uttered at the linuxjournal.com issue of Apr 01,
2002, you then understand that it is actually a Communist heist on
Open Source America.

Remove the undercover communists in sheeps clothing from the open
source municipalities. Remove undercover KGB/FSB types from key IT
Branches inside the USA. Remove the Russian and Chinese nomenklatura
Mafia from America, who heisted CEO's, Board of Directors and their
families like the sleep-over bandits, in order to get the outsourcing
game of opensource going.

and then remove the covert Trotskyite's from Washington D.C., You
know, these so-called former NSA types, next clean up congress,
then America's ICT Branch will run like a brand-new engine again.

You cannot migrate to a "new information technology" after throwing
your old shoes away, you still need them to move there.

The Bernie Madoff Ponzi scheme? That's a Neo-Con ICT Consultant robbery
of the American IT Industry. What's a Neo-Con ICT Consultant? Its types
from behind the iron curtain, who have never ran Linux, who decorated
themselves with Linux names from the past, and are hard-core criminals
supported by Putin's FSB/KGB and inside America through the MOSSAD/NSA.

GCC debates project governance

Posted Apr 2, 2009 17:49 UTC (Thu) by nix (subscriber, #2304) [Link]

Wow. Kook overload, sufficiently incoherent that it's unclear what, if
anything, this has to do with a GCC-versus-FSF internecine grumblefest. Is
stock accusing the FSF of being communists? Is he accusing everyone *else*
of being a communist, or perhaps a Russian? What drugs is he on, and why
aren't they illegal?

I don't like Windows much, but not even I would suggest that people that
prefer Windows to Linux are 'hard-core criminals 'supported by Putin's
FSB/KGB and inside America through the MOSSAD/NSA'. (Heh. I had no idea
that the NSA, Mossad and the FSB were in cahoots. Still less did I realise
that the UK Government is populated entirely by FSB agents, judging by the
UK's wholehearted and expensive embrace of MS over the last decade or so.
One wonders why, after a takeover of that magnitude, they proceeded to
have a major diplomatic *spat* with Russia over a little matter of
polonium poisoning... perhaps stock's ravings are not entirely accurate.
But no, that's fantasy.)

No range seems safe now

Posted Apr 3, 2009 22:28 UTC (Fri) by man_ls (subscriber, #15091) [Link]

We cannot even trust subscribers any more, not even those in the subscriber#<10k range... Is even the <5k range safe? Nix?

No range seems safe now

Posted Apr 3, 2009 23:57 UTC (Fri) by nix (subscriber, #2304) [Link]

Certainly the sub-5000 range is no oasis of sanity if that range includes
me! (Although Robert 'shares RMS's initials' Stockmann has been a net.kook
for a long, long time: I can remember him from only a few weeks after I
got on the net for the first time, and he was just the same then. Though
this was a particularly impressive outburst even by his standards.)

... but, no. There is no safety. It's contagious: in six months' time
it'll reach down into the hundreds and start attacking contributors too.
In a year's time the rot will have spread to subscriber #1, and corbet
will release the source code to the all-new LWN, with commenting
restricted to people with names containing the letter 'A', a colour scheme
of radioactive pink and puce...

... written in ASP.NET.

And it's all my fault.

Er, sorry?

Thanks for the laugh

Posted Apr 4, 2009 9:26 UTC (Sat) by man_ls (subscriber, #15091) [Link]

So we get a LWN Flying Circus edition and source code? Too good to be true! :D

No range seems safe now

Posted Apr 6, 2009 13:52 UTC (Mon) by fatrat (subscriber, #1518) [Link]

It had the virtue of being a funny rant, even if unintentionally so.

GCC debates project governance

Posted Apr 3, 2009 16:52 UTC (Fri) by hppnq (guest, #14462) [Link]

In function 'main':
Stock comment: 1: error: 'Open Source' undeclared in "early 90".

GCC debates project governance

Posted Apr 2, 2009 15:46 UTC (Thu) by fandom (subscriber, #4028) [Link]

They could always call it egcs 4.4 and release it, that worked once,
didn't it?

GCC debates project governance

Posted Apr 2, 2009 16:28 UTC (Thu) by sbergman27 (guest, #10767) [Link]

"""
The matters to which we defer to the FSF are any matters that they *ask* us to! They own the code. If RMS, for some reason, decides that he doesn't like the phrasing of a comment somewhere, we have to either convince RMS he's wrong or change the comment.
"""

A chilling statement, indeed.

All animals are equal, but some animals are more equal than others ...

GCC debates project governance

Posted Apr 5, 2009 12:45 UTC (Sun) by oak (subscriber, #2786) [Link]

> A chilling statement, indeed.

Why? Project & copyright owner can decide what he accepts to his
project / code. GPL guarantees that others can fork the code if they
don't agree. I don't see a problem.

People have their own opinions on matters and often the opinions (or
how/when they're expressed) conflict with yours or mine, that's just a
fact of life. Freedom fundamentalists and pig-headed principles are
needed to avoid the freedoms from being corrupted by a gradual slide to
pragmatism and what is convenient. Such people may be awkward to deal
with, but one needs to admire their persistence. You can get them to
change their minds, but it requires finding an argument that works from
their own principles, not yours. And it requires time...

GCC debates project governance

Posted Apr 6, 2009 0:09 UTC (Mon) by jbailey (subscriber, #16890) [Link]

GNU maintainers defy the FSF all the time. It's a give and take. I remember
a number of projects refusing to switch to the GFDL, basically answering "You
want it changed, you do it. I won't block the commits, but I won't do them
either." Some people were stripped of maintainerships, but often those
people just continued to do the work anyway. It sorted itself out in the
end.

Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds