Well, what do you know? It turns out Linux isn't a cancer after all.
It's a role model.
And you know how we keep hearing buckets of FUD that Open Source is written by God-knows-who? Well, today we learn from their actions that Microsoft was just horsing around about all that.
They have hired Daniel Robbins, at one time chief architect of the Gentoo distribution to help them "understand open source and community-based projects." So, when Microsoft needed to hire someone from the community, they were able to find him, huh?
The poor man has his work cut out for him. Frankly, I hope he fails. I prefer that Microsoft not quite get it, if you know what I mean, since their slimy purpose is to destroy Linux and the GPL. And I wish more appropriate companies would quickly hire the cream of the programmer crop, so that Microsoft has only the wannabe's available to them. Think of it as a preemptive strike. No. Seriously. Incompetence is our friend. Imagine if Microsoft had funded a company other than SCO.
See what I mean?
Today three corporations demonstrated that they believe they can seriously benefit from Open Source. Microsoft is only one of the three.
Sun Microsystems is the second corporation that needs Open Source. It would like you to help them make some money by writing code for them. You can use the code you write for yourself too, so long as you swear on a stack of Bibles you won't mix it with GPL'd code (the CDDL is incompatible) or help Linux out in any way, shape or form. I'm mentioning that because they don't and neither does Stephen Shankland in his article. Of course, Sun gets to be co-copyright owner of your code, according to Shankland's report. Here's the Sun Contributor Agreement page, which concurs. No doubt that will lead to tons of fun for you down the road, when they wish to do something you don't want them to do with the code. Here's the Sun Contributor Agreement [PDF] you must sign, before you can contribute code:
2. You hereby assign to Sun joint ownership in all worldwide common law and statutory rights associated with the copyrights, copyright applications and copyright registrations in Your Contribution, to the extent allowable under applicable local laws and copyright conventions, and agree never to assert against Sun any “moral rights” therein. You understand that (i) this Agreement may be submitted by Sun to register a copyright in Your Contribution, and (ii) Sun may exercise all rights as a copyright owner of Your Contribution. This Agreement supersedes and replaces all prior copyright assignments for Contributions made by You to Sun. Neither party has any duty whatsoever to render an accounting to the other party for any use of a Contribution.
English translation: Sun can do whatever it wishes. And vice versa. Here's a snip from Larry Rosen's book, "Open Source Licensing," to give you a little context:
Open source projects are usually not the owners of the copyrights in the contributions to them, and they have no right to change those licensing terms on their own. . . .
Who should have the right to make future licensing decisions about contributions, the project or the contributor? There is no single answer to this question in the open source community. In fields other than software, this issue has long been a fruitful source of litigation. Musicians and artists have often fought against their own publishers, to whom they once willingly assigned their copyrights, trying to regain those valuable rights for other markets. In recent years, contributors to newspaper articles fought against their own publishers for the rights to republlish their articles in new online forums. These cases often turn on the interpretation of contributor agreements. Of course, had they been handled as copyright or patent assignments, no rights would remain and the musicians, artists and newspaper writers would have been without recourse regardless of what decisions their publishers make.
I personally don't want to give up too much control to my publisher. When the words are mine, I want to own them. I will license them to everyone under an appropriate open source license, but I will not give them away to someone else who can then elect to take them private or license them in ways of which I don't approve. This is true no matter how much I like my publisher, and no matter how much I want to save my publisher from having to worry about future relicensing problems.
In the case of the Sun Contributor Agreement, my understanding is that you give away your right to control what Sun does with your contribution; however, you are also free to use it any way you like yourself. However, since Sun is the copyright holder of your code, just as you are, it can change the licensing terms at any time it wishes. And, of course, the elephant in the room is Microsoft. Sun and Microsoft are in a patent peace, but you aren't. If Microsoft has patents it could use against you, even if Sun knows about those patents, there is nothing in the agreement or the CDDL that requires Sun to share with you what it knows. It can't be sued, but you can be. If you'd like to review Groklaw's articles on the CDDL, here's the one when they announced it, and here's what we think is wrong with it. And here's the one with the chart showing the changes they made to the Mozilla Public Licence to create their CDDL. Some binaries in Solaris are released under what they call the OpenSolaris Binary License:
Some binary components are covered under the OpenSolaris Binary License and some are covered under other open source licenses.
For example, take Java. It says this:
Software may contain Java technology. You may not create additional classes to, or modifications of, the Java technology, except under compatibility requirements available under a separate agreement available at www.java.net.
I suggest you read the license carefully, and then think of SCO:
"Software" means the OS/NETWORKING (ON) BINARY-ONLY COMPONENTS, ON-SPECIFIC BUILD TOOLS, AND ON BLINDINGLY FAST UPDATE (BFU) ARCHIVES BINARIES in binary form, any other machine readable materials (including, but not limited to, libraries, source files, header files, and data files), any updates or error corrections provided by Sun, and any user manuals, programming guides and other documentation provided to you by Sun under this Agreement.
2. Permitted Uses.
Subject to the terms and conditions of this Agreement and restrictions and exceptions set forth in the Software's documentation, Sun grants you a non-exclusive, non-transferable, limited license without fees to
(a) reproduce and use internally the Software for the purposes of developing or running an Open Solaris distribution.
(b) reproduce and distribute the Software (and also portions of Software identified as Redistributable in the documentation accompanying Software), provided that you (i)distribute the Software or Redistributables bundled as part of, and for the sole purpose of running, an OpenSolaris distribution; (ii) do not remove or alter any proprietary legends or notices contained in or on the Software or Redistributables, (iii) only distribute the Software or Redistributables subject to a license agreement that protects Sun's interests consistent with the terms contained in this Agreement, and (iv) you agree to defend and indemnify Sun and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs, Software, or Redistributables.
(a) The copies of Software provided to you under this Agreement is licensed, not sold, to you by Sun. Sun reserves all rights not expressly granted.
(b) You may not modify Software. However if the documentation accompanying Software lists specific portions of Software, such as header files, class libraries, reference source code, and/or redistributable files, that may be handled differently, you may do so only as provided in the documentation.
(c) You may not rent, lease, lend or encumber Software.
(d) you do not remove or alter any proprietary legends or notices contained in the Software,
(e) Unless enforcement is prohibited by applicable law, you may not decompile, or reverse engineer Software.
(f) The terms and conditions of this Agreement will apply to any Software updates, provided to you at Sun's discretion, that replace and/or supplement the original Software, unless such update contains a separate license.
(g) Software is confidential and copyrighted.
(h) Software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility and Sun and its licensors disclaim any express or implied warranty of fitness for such uses.
(i) No right, title or interest in or to any trademark, service mark, logo or trade name of Sun or its licensors is granted under this Agreement.
(j) If your Permitted Use in this Agreement permits the distribution Software or portions of the Software, you may only distribute the Software subject to a license agreement that protects Sun's interests consistent with the terms contained in this Agreement.
Sheesh. Trade secret protection and copyright simultaneously? Silly me. I thought copyright law was serious that to enjoy a copyright, you had to go public with whatever you had the copyright on. That was the deal. Anyway, remember the contracts in SCO v. IBM and be careful what you agree to.
I don't think Sun quite grasps the concept of Free as in Freedom. Or the Open Source method, for that matter, which is to share and share alike freely, so others don't have to reinvent the wheel all the time. Here's the page they have the nerve to call "OpenSolaris Community: GNU Solaris", where you can learn about their desire to incorporate more GNU software into Solaris. Just not the other way around. That's not what I'd call sharing.
This community is all about incorporating/including GNU software into OpenSolaris.
OpenSolaris supports lots of standards - XPG3, XPG4, XPG6, Posix, etc. GNU has become a defacto standard in the Linux and *BSD communities, and we've incorporated many GNU commands and libraries into Solaris already, albeit often with name changes, marooned out in /usr/sfw where new users cannot find it, etc.
We would like to bring more GNU software into OpenSolaris, and rationalize the naming conventions without breaking backwards compatibility. In addition, we could provide an individual user with a choice of a GNU personality for OpenSolaris/Solaris.
It's sharing that results in what IBM says is a 30% increase in the speed of software development for them. You can read about their new Community Source development model, which hopes to benefit from the best (from their perspective) of the Open Source methodology, while grafting on some hierarchical top-down control. Doug Heintzman, IBM Software Group's VP of Strategy and Technology, puts it like this in the interview:
We look at the open source communities out there and we are witnessing this kind of fascinating bottoms up grassroots innovation where great people have an idea and collaborate with other people and get together to make those ideas into something real. That's a very exciting phenomenon. So certainly we have a structured approach to community source, but we also have an eye to promoting this bottom up, collaborative, creative process. This is part of borrowing the culture from the open source community.
Would anyone have hired Linus Torvalds in early '90s to work on the Linux kernel? I don't think so. For that matter, would anyone have hired me to do Groklaw in 2003? No. We were both nobodies. No pertinent track record. Both wanting to try something a little bit new. But both projects worked. Why? Heintzman, when he describes the new IBM development model, hits on what I believe is an important key:
The quick gist of it is really quite simple. We run a very large software development company and we have laboratories around the world. And due to a number of technological factors as well as some efficiency enablers like the Internet, we have decided to move to a new development methodology.
We are systematically decomposing our technologies into a number of components and a lot more reuse than was previous possible. Because of that strategic decision we need to move to a development system that allows us much greater transparency, and a much greater awareness and cross pollination of expertise, ideas and requirements between all of the various different laboratories.
Increasingly our products are assembled from components instead of architected from the top down. We basically leveraged our rather extensive experience with the open source communities and we have borrowed many of their philosophies, strategies, tools and a lot of their culture to transform IBM's internal development practices to support global component development and promote collaboration and reuse of technology.
That's the high level synopsis.
The key piece, I believe, is the Internet. He calls it an efficiency enabler. It's actually more than that. It's a socialization tool. You can meet people from all over the world in real time and work on anything you all find interesting, and because of the scale of the Internet, the very best minds and the best skills can find each other quickly and easily and naturally. There is no geography. I know that with Groklaw, I work with people I'd never have met in my pre-Groklaw world, and it's been such a pleasure. I don't even need to meet them in real life to work very well together. I'm sure it's the same with the kernel work. It's fun, and it doesn't just enable efficiency. It creates working groups that otherwise would never have existed, based on ability and nothing else. There is no middle man, no interview with Personnel, no resume, no corporate culture. You see who does good work, and you give that person more to do, usually based on their own suggestions. It's a natural process. Most of it just happens. And it's so, so satisfying. And someone is awake and working 24/7. It's no wonder corporations are trying to bottle it.
I had a devilish thought when I read this about Robbins:
While in the midst of hastily packing to move to Redmond, Robbins nonetheless managed to find the time to finalize the transfer of Gentoo's intellectual property (essentially copyrights on ebuilds and other software as well as soon-to-be trademarked Gentoo logos) to the not-for-profit Gentoo Foundation, Inc.
I thought to myself, I sure hope Microsoft doesn't infringe any of Gentoo's copyrights. You know, methods and concepts and such? According to their pal, SCO, if you are once exposed to such, why, there's no telling who can claim ownership of the craziest things if that programmer tries to write some code for the new employer. I would assume Robbins is mentally contaminated and all, a la Unix.
Joke. Joke. But you see how idiotic that concept is, when you play out the idea in real life? No programmer could ever work for more than one company and or at least only on one kind of OS. And heaven help any programmer who has actually studied computer science. Unix is inevitably what they study. So they can't work for anyone but SCO, I guess. That's it. All computer science graduates can work only for SCO. There. Problem solved.
Jonathan Schwartz has found a way to attack the GPL and Linux:
Sun in the past has positioned Solaris 10 as direct competitor of Linux. In a conference call about the open sourcing of the code, Schwartz once again took a jab at the Linux operating system.
He called the general public license (GPL) a "punitive license" and said that Open Solaris "allowed for individuals to build products free from any obligations." . . .
The main difference between the two is how they treat adjustments that individual developers or companies make to the code. The GPL requires developers to share their code with the world, and the CDDL lets developers keep the source code of their work a secret.
The latter is a major benefit for enterprises that want to incorporate open-source code into their products without giving out trade secrets.