Apple and 'getting' Open Source Two opposing articles on Apple either 'getting' or not 'getting' Open Source, one by Jeremiah Foster (http://www.oreillynet.com/mac/blog/2007/03/apple_failing_to_understand_op.html) and one by Iljitsch van Beijnum (http://arstechnica.com/journals/apple.ars/2007/03/22/apple-were-breaking-up-you-only-want-me-for-my-source). Both of these are only superficial glances at what is really going on. To really understand what is going on, one has to understand the process that is usually involved with what people refer to as 'Open Source'. The 'Open Source community' is often viewed superficially as a bunch of people who work on source and release that source freely. Perhaps a better name for what is traditionally referred to as 'Open Source' is really 'Open Development'. The 'Open Source Model' typically consists of someone releasing the source to something, accepting bugs, interacting with users, developers, and bug reporters, fixing bugs and adding features in an open and collaborative manner. People know or are able to know what the developer(s) of the software are doing, what the upcoming features are, what bugs have been reported, and can view the development source and try it for themselves. A user in such a model tries out the product, reports feedback, and if they are inclined/able they will contribute back bug fixes or features for inclusion in the product. Apple clearly benefits from the 'Open Source Model' as evidenced by the amount of open source software they use. However, do they actually participate in the model? There are some specific examples where they do, such as with GCC. Apple uses the official GCC repository for most of their development, and to some extent uses the GCC bug tracking system. This is nearly 100% in line with the abstract notions of the Open Source community and development model. For most of the rest of the source they use that comes from outside the company, the picture looks much less rosy. Portions of the source such as the FreeBSD userland tools, rsync, samba, and others, Apple does not use the official upstream repository or bug tracking tools. Users are not able to see bugs, interim releases, or have any insight into the development process at all. Occasionally Apple will report a bug upstream, and possibly even contribute a patch or two, but this is not the norm. However, Apple does not violate the letter, or even necessarily the spirit of the licenses of the source they use. When a public binary release is made, such as Mac OS X 10.4, Apple releases the source (potentially) used to generate the binaries they shipped including any changes they may have made. On a cursory glance, this seems great. They are meeting or exceeding the terms of the licenses. However, for the authors/maintainers of the software, or even their users, not all is well. First, Apple has shipped a potentially forked version of the software and the only indication that it has been forked is to grab the source Apple has kindly made available, and examine it line by line, comparing to the 'official' sources. This is the process the upstream maintainers must go through to see what Apple has done to their software, and painstakingly extract any generally useful bug fixes or features, and then worry about copyright/licensing issues. Apple does not go out of their way to inform individual maintainers of what bugs were fixed, features added, or even that the changes have become available. The burden is entirely on the upstream maintainer. While this might not be exactly evil, it is a tad unfriendly and it does not engender a feeling of cooperation with the various upstream maintainers Apple draws on. Another category of 'Open Source' Apple engages in, is releasing its own entirely internally developed source. They do release a good chunk of the source. However, the question is again, do they participate in the open source model? For these projects, they typically do not allow access to the bug tracking system, preventing users from seeing what bugs have been reported, and they typically do not allow access to the developmental source repository so users cannot try it out in an interim stage and become involved in the development process. If a person outside Apple wanted to participate, they could report bugs and submit patches, but more often than not the bug reports and patches will go unanswered until the next binary release of the product. The external developer would have no way of knowing at the time of submission whether someone already reported the problem, if Apple had already done all the work they just did, or even if the patch they are contributing is even relevant anymore. With development cycles on the order of 12-18 months, that can be a long time for any feedback, and the external developer has usually moved on since then. For Apple developed 'Open Source' projects, they most certainly do not participate in what is normally considered the open source development model. The above is a rough characterization of the situation. Apple is very large with many different products. There are specific examples of open source projects which deviate from what was listed, such as Bonjour, WebKit, and I explicitly mentioned gcc. However, I believe the majority of the open source projects fall into the categories above, such as xnu, IOKit, and the various drivers and userland utilities of Mac OS X. As for whether the situation is getting better or worse, taken over the 8 years or so I have been involved in Apple's Open Source efforts, the situation has steadily declined of that time. However, it is worth noting that despite the decline in Open Source relations, the popularity of Apple's products has dramatically increased as has the company's stock price over those same 8 years. Some other articles on Apple's open source: A Brief History of Apple Open Source Efforts Feb. 21 2006 http://www.opendarwin.org/~bbraun/oshistory.html WebKit and Apple's Open Source Efforts Feb. 23 2006 http://www.opendarwin.org/~bbraun/webkit.html Why Did Darwin Fail Feb. 23 2006 http://www.opendarwin.org/~bbraun/osfail.html Response to Slashdot Posting of "A Brief History of Apple Open Source Efforts" Feb. 24 2006 http://www.opendarwin.org/~bbraun/slashdot_response.html Lessons Learned from recent Darwin experiences Feb. 24 2006 http://www.opendarwin.org/~bbraun/darwin_lessons.html The Proper Context for Apple and Open Source Apr. 11 2006 http://www.opendarwin.org/~bbraun/apple_context.html