Tim seemed to take exception to my statement that the Apple kernel is open source.
“So with that Open Sourced Kernel I’ll be able to get all of those nifty new things that Apple added in then right? I’ll believe it when I see it. Being a part of Open Source means giving back to the community, not just taking the ball and running with it.”
Actually, I never claimed that Apple was part of the open source community. They’re not and I don’t blame them for it. They don’t feel the “Open Source spirit” either. They do however, follow the licenses of the open source software they use. Yeah, the KHTML team may not be happy with them, but Cnet quotes one of the team members as saying:
“Another said that while Apple had stuck to the letter of the license in fulfilling its obligations to the KHTML project, the two groups were now all but estranged. … Apple is not all about Open Source; ask the KHTML development team if you are in doubt about that. Sure, you can use a lot of your favorite Linux apps on OS X, but you can do the same on Windows.”
Tim and I had a chat last night that lasted about an hour and a half. We both agree that Apple doesn’t relinquish their right to their software patents. He believes that since you would have to license Apple’s patents to use their code to implement those patented processes, it is not open source. I disagree, and I’ll explain why.
First, a clarification. When a company receives a software patent, they have the right to license that to who they see fit. Whether we talk about Apple’s spring-loaded folders or something else, even if you write your own code to implement that patented item, it must be licensed from the patent holder.
Now, I’ll present my arguement as to why Apple’s kernel is open source. The Open Source Initiative is an organization that was founded in 1998 by Bruce Perens and Eric S. Raymond. OSI has published a definition of what Open Source is that I agree with:
“The Open Source Definition
Introduction
Open source doesn’t just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:
1. Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.
2. Source Code
The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.
3. Derived Works
The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.
4. Integrity of The Author’s Source Code
The license may restrict source-code from being distributed in modified form only if the license allows the distribution of “patch files” with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.
5. No Discrimination Against Persons or Groups
The license must not discriminate against any person or group of persons.
6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
7. Distribution of License
The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.
8. License Must Not Be Specific to a Product
The rights attached to the program must not depend on the program’s being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program’s license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.
9. License Must Not Restrict Other Software
The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.
*10. License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or style of interface.”
Another thing that OSI does is vet licenses that claim to release code as, “Open Source.” They even publish a list of approved licenses. Right in the copy of the license that they display on their website is the section that Tim finds so contentious:
5. Limitations on Patent License. Except as expressly stated in
Section 2, no other patent rights, express or implied, are granted by
Apple herein. Modifications and/or Larger Works may require additional
patent licenses from Apple which Apple may grant in its sole
discretion.
Open Source is about setting the terms of copyright so that your code can be modified, used and redistributed (among other things listed above). It is not about patents. While I believe that software patents should have a very short term (no more than a year or two as software is a fast moving field, much faster than say, manufacturing) they are valid, legal and useful.
Were Apple not to publish their code, as a programmer, you would still have to license the patent to implement that feature. But, code and licenses are covered by copyright law, patents have their own body of law.
“Where is my officially supported method of syncing my 2 iPods under Linux? Where is my iTunes Music Store access for Linux?”
Well, it’s a business. Why don’t you ask Steve Jobs to do a cost/benefit analysis on doing it? Don’t forget to ask what the RIAA’s affect on his decision is.