The Great Contradiction: Sun, OpenSolaris, and Independance

Posted on December 31, 2007

I thought I’d devote a little time to hashing out some thoughts regarding what I call “the great contradiction”, or, more generically put, OpenSolaris independence, in particular, from Sun. The problem is that of co-dependence, real or perceived depending on your point of view. We want to say that OpenSolaris is independent and not “controlled” by Sun. And yet, the vast bulk (we’re talking like 99.999%) of all contribution is from within Sun’s ranks.

In order for OpenSolaris to become independent, several things have to happen, which are well known. Namely, Sun must contribute itself to OpenSolaris as though it were a 3rd party, resources are shared by all in equal manner and Sun’s control is limited to the fact that they are the largest contributing organization. This means that the master (“golden”) gate is on the outside and the gatemaster is fair and impartial to all. Furthermore, all processes are moved out into the open, ARC, bug tracking and submission, support feedback, the works. Mecurial is supposed to be the key to making this happen, but as was said at the Developers Summit, “its not there yet.”

Here in lies the contradiction… the community is dependent on Sun to become independent. While the code is “free” by virtue of the CDDL, the master codebase is not, requiring an explicit signed agreement with Sun to put back to. This practice is, imho, not evil or wrong, it is a legal reality that if Sun is to offer indemnity it must abide by and this is ultimately a fair compromise. Never the less, it falls short of the independence that many seek.

The code is only half the battle, as we’ve recently discovered… the trademark is of equal importance. That trademark must be managed by an organization with legal representation, which OpenSolaris does not have.

The truth that we must accept is that OpenSolaris is a social organization. A “club”, to be grotesque. We are the social, the “community”, framework around Sun managed projects, with means to provide input and contribution upstream or indirectly. The Charter lends some clarity:

[…] Sun does by the execution of this charter all of the following: First, establish
an OpenSolaris Governing Board (OGB) to manage and direct an OpenSolaris community in its
efforts to improve upon and advocate in favor of OpenSolaris, so that the community may long
endure.

And later…

However, nothing in this charter shall be construed so as to confer to the OGB: (a) any title or right
under copyright, patent, trademark, or other intellectual property law; (b) control of or interest in
any asset, tangible or intangible, of Sun Microsystems, Inc. or any of its subsidiaries; (c) control of
or interest in Sun Microsystems, Inc. or any of its subsidiaries.

And so it is from this reality, that we, the community, have “control” of two things only: 1) the CDDL licensed code which is “free”, and 2) the social organization, “community”, around it.

OpenSolaris itself is defined in the charter:

Whereby Sun Microsystems, Inc. (Sun) has granted license to a certain subset of its Solaris
Operating System, known henceforth as OpenSolaris,

And thus, OpenSolaris is the CDDL licensed code around which a community which is nameless except by inference in phrases such as (from the charter) “shall
represent the interests of the OpenSolaris community.”

And so we should have discussion over issues of “control” from this vantage point, based not on assumption but rather on the immutable Charter or the ratified Constitution.

In this light, certain squabbles become more clear. Can Sun name Indiana “OpenSolaris”? Yes. Do we have the power, legally, to stop them? No. Are there grounds for challenging the decision based on fact? Yes, the charter defines OpenSolaris as a subset of Solaris. Can you argue that Indiana is a subset of Solaris and thus satisfying the definition? Yes, you could easily make that case. Therefore, in a case such as the naming squabble the only available recourse is to share your opposing opinion in the form more likely to advance your position, and thousands of bickering emails isn’t, evidently, the most effective way to do so.

Similarly, the role of the OGB is clear. Do they have any more power than any member of the community? No. But as representatives of the community at large they can more effectively focus discussion for the purposes of decision making. Take this back to politics for a moment, no group will ever entirely agree on any matter, however the governing body, be it a board or a congress/parliament, should take in all these considerations and arrive, collectively, at a result that most effectively represents the whole. The word of the OGB is the word of the entire community… consider that when you vote. If you can not say about someone you vote for “I would gladly let this person speak on my behalf before Jonathan” (or the press, etc) then you shouldn’t cast your vote for them. A candidates ability to “get things done” or even to know everything about some given topic, isn’t nearly as paramount as their ability to represent your interests and views. Feel free to refer to “Mr Smith Goes to Washington”. (Awesome film, James Stewart rules.)

So what is my point? I want to lend a bit of perspective. In some regards, our progress to date has been slow and discouraging. But let us also reflect on our position, our dependence on Sun to provide our independence from Sun, and we’re making remarkable progress. That is to say, Sun is under no obligation (save implication) to give us independence or control of anything beyond the social organization, which we already have. The fact that Sun is trying, no matter how poorly anyone may think they are doing, is really quite remarkable. Even if they never succeed (forget the fact that “succeed” is a relative term) they will have broken no vow.

And so then… armed with this perspective, where do we find ourselves? How do we exercise control over our beloved Solaris? I’ll forward the following suggestions for your consideration.

First, let us keep our focus on Solaris. The term “OpenSolaris” is muddied with confusion and no longer serves to represent the origonal intent, quoted above, “a certain subset of [..] Solaris”; namely, what we currently refer to as Nevada. Above all else, we all came to be part of this community because of our love/interest/use/etc of the core of Solaris. That core, the “certain subset” may be in the form of Solaris(tm), OpenSolaris/Indiana, Belenix, Nexenta, or a variety of other forms, present or future. Let us not be so carried away by the social organization as to forget that which binds us.

Secondly, let us be reminded that Sun Microsystems, Inc is a business and their first priority is to make money to feed families and drive innovation and profit those who’ve invested in the company. This is not evil. I’m a share holder, many community members are, and I’d love for my belief in Sun to profit me as well as employees, perhaps to put my children through college one day.

And thus, the most effective way to impact and influence Sun’s decision making is as consumers. All of us are Sun customers or potential Sun customers. Like it not, “I’ll buy more because” is more effective than “I’d like it more if”. The goal is typically the same, its the way in which you advance the issue. Perhaps one day everyone inside of Sun will understand Jonathan’s vision… but the reality is that while they made nod their heads and applaud his approach, the vast majority really just don’t get it at all, and so we must rise above the occasion and speak their language until eventually they understand ours.

While we may not have control as a community, we are now organized and represent some of the most influential Sun customers. We can use that organization to bring together needs and problems, and to advance those in a unified way. This may be passive guidance, suggestions, or feedback, or it may be active creation and contribution.

Frustrations, I believe, come from the ability to drive or contribute, but not to change Solaris. That is, I can submit code and suggest change, but I have no power to decide what does or does not make it into an official release because those releases are handled by Sun, not the community. For example, I can contribute a new compression tool, but I can’t remove SAC. And so is made more clear the term “contributor”… not architect. On reflection, however, this is not unique. You can submit a patch to the Linux kernel but only suggest deprecating something else. The only difference is that where Linux may have Linus as a “benevolent dictator”, we have Sun Microsystems en mass.

The power of “control” is really in defining what goes in and out, what is acceptable and what is not, and how all that is presented. And thus, for the community to ever have “control” we must focus on community distributions. We can have the control that many seek not by railing against Sun’s doors but rather by wholly embracing distros like Belenix in a way that we have not before. One might argue that Red Hat controls Linux much like Sun controls OpenSolaris… except that alternatives such as Debian, Gentoo, and Slackware exist. To rails against Red Hats doors is more futile and frustrating than creating a new distribution or seeking out other like minded developers. But this isn’t without its own consequences, namely the endless list of distributions seen today in the Linux space that, some would argue, hurts the community as a whole rather than aid it.

And so, the question becomes, who controls the distro and how is that control dispersed. And here is where the road divides before us, members of the “OpenSolaris” community. The naming debacle is akin to Red Hat changing its name to “Linux”, the natural outpouring is those who would say “to support Linux is not to support Red Hat”. The natural reaction is to switch to Debian or Gentoo. And so too in our case, switch to Belenix or Nexenta, and invest your effort there. But the opposite reaction is to embrace the change, view a community “platform” as superior to a community codebase and stand behind Indiana. The design of Indiana is such that far less will be present in the core release providing for greater community control over what goes in or out, putting the power not in Sun Release Engineering but rather in the hands of the end users. Put another way, one might say “Sure, we control the platform, but we’re going to make the fewest decisions for you possible.” Whats more, Indiana was created within our social organization and thus falls under the jurisdiction of the Constitution.

And so, in the end, the future will be decided based on whether we as a community side with efforts like Nexenta or efforts like Indiana. It is we, ultimately, who will decide. When you let all the arguments run their course, we’re left with a simple choice, continue to work with Sun who slowly but surely is trying to work with us without any obligation to do so, or to apply the social organization which we do control toward building a product entirely free of Sun. The greatest fallacy of all is the belief that we all must go one way or another; we do not.

The real power isn’t in Sun’s hands, it never was. The power is in our individual choices and the collective strength of like minded individuals. I thus leave you with the following ideas to ponder:

  • The “OpenSolaris” Community is a social organization, independent of any distribution, rallied around a codebase which can be forked at any time by anyone.
  • If you oppose Indiana, for any reason, the logical course of action is to rally behind a community distribution devoid of any direct Sun influence.
  • If you do not oppose Indiana, remember that Indiana, even if its called “OpenSolaris”, is not the “subset of [..] Solaris” we as a community are bound together by.
  • And most importantly, remember that through any divisions we may have, its that “subset of [..] Solaris” that we’re all behind, whether to honor our obligations to shareholders or to be part of something we love, we’re a big, happy, disfunctional family, and we’re all really trying to do what we think is best; right or wrong.

Happy New Years.