Two years after it selected open-source rendering engine KHTML as the basis of its Safari Web browser, Apple Computer has proposed resolving compatibility conflicts by scrapping that code base in favor of its own
In an e-mail seen by CNET News.com, a leading Apple browser developer suggested that architects of the KHTML rendering engine--the heart of a browser--consider abandoning the KHTML code base, or "tree," in favor of Apple's version, called WebCore. KHTML was originally written to work on top of KDE (the K Desktop Environment), an interface for Linux and Unix operating systems.
"One thing you may want to consider eventually is back-porting (WebCore) to work on top of (KDE), and merging your changes into that," Apple engineer Maciej Stachowiak wrote in an e-mail dated May 5. "I think the Apple trees have seen a lot more change since the two trees diverged, although both have useful changes. We'd be open to making our tree multi-platform."
The suggestion, which KHTML developers said they were unlikely to accept, comes as Apple tries to quell rising dissatisfaction among the original architects of KHTML. Two years after hailing Apple as a white knight, those developers are calling the relationship between their group and the computer maker a "bitter failure."
n a conflict some call emblematic of what can go wrong when corporations embrace open-source projects, developers are airing longstanding gripes against Apple, accusing the computer maker of taking more than it gives back to the open-source group.
Apple declined to comment for this story. But Safari engineer David Hyatt did acknowledge KDE complaints in his blog, defending the scope of recent patches and soliciting suggestions on improving Apple's relationship with KDE.
"For what it's worth, the patches I posted...are not solely KHTML patches," Hyatt wrote. "What do you think Apple could be doing better here?"
The subsequent dialogue, played out in public mailing lists and blogs, led to the e-mail exchange in which Stachowiak suggested that the KHTML group start fresh from WebCore.
KDE said complaints about Apple had been brewing for some time, and attributed some of the tensions to the inherently at-odds priorities of corporations and volunteer coders.
"Business is constrained in ways that open source prides itself on not being constrained," said George Staikos, a software consultant, KDE developer and spokesman for the open-source group. "There have been problems all along in the sense that Apple had their own internal issues to deal with (that) did not mesh well with the model used by KDE to develop KHTML, and it resulted in KHTML and (Safari) quickly diverging. This problem compounded over time."
As a result of that divergence, improvements made to Safari can't be easily contributed back to KHTML, leaving the open-source original at a disadvantage to its corporate-sponsored progeny.
That issue flared in recent weeks as Apple trumpeted Safari's ability to pass the Acid2 standards-compliance test. When confronted with the question of when KHTML would get the improvements to enable it to pass the test, KDE developer Zack Rusin replied, "Probably never."
The divergence between Safari and KHTML has led to a de facto divorce between Apple and KDE, according to some developers.
"At some point the open-source ideals which we apply to KHTML and (Apple's) commercial setup...went in two different directions," Rusin wrote in an open letter to Apple's Hyatt. "At this point we have two completely separate groups developing two different versions of KHTML. We have absolutely no (say) in the way you develop your version of KHTML and you don't participate at all in the way we develop KHTML."
Apple was thought to have breathed fresh life into KHTML two years ago. The choice of KHTML was seen as a validation of KDE's work in developing a small, fast browser engine, and it represented a significant victory over open-source rival Mozilla, which in its pre-Firefox days battled serious code bloat.
"It's a great acknowledgment of the hard work done by all members of the KDE project, and proof that the concept of free software is perfectly capable of producing software worth being the preferred choice of major hardware and software vendors like Apple," KDE engineer Harri Porten said in January 2003 when Apple announced its choice.
KHTML coders said that they looked forward then to having full-time Apple engineers working on the project, which they said had languished by virtue of their own part-time, unpaid status.
After a substantial honeymoon between Apple and KHTML, the relationship soured as it became clear how different the company's priorities and procedures were from those of the volunteers.
According to KHTML developers, Apple engineers took a less "pure" approach to fixing bugs, applying patches that KHTML developers were loath to reincorporate back into their code base.
"In open source, everything's supposed to be done the right way, but sometimes the less correct way is faster," Rusin said. "In fixing one problem, they were breaking a whole bunch of other things. Apple developers were focused on fixing bugs in such a way that we could not merge them back into KHTML. Those fixes were never an option for us."
In contrast to the transparency and immediacy with which open-source developers are accustomed to working, KDE volunteers said they suddenly found themselves dealing with bug reports Apple deemed too sensitive to share, new requirements for auditing code before releasing it, and demands that developers sign nondisclosure agreements before looking at some Apple code.
To be sure, not all relationships between companies and open-source groups sour to the degree that Apple and KDE's has.
The origins are somewhat reversed in the Mozilla case--Netscape gave Mozilla the browser to develop before returning to the project to exploit it commercially--but Netscape characterized its relationship with the Mozilla Foundation as the picture of comity.
"The Mozilla Foundation has been a wonderful thing for Netscape," said Netscape general manager Jeremy Liew. "We built certain features into the Netscape browser that Mozilla didn't see fit to include in their roadmap, and there are going to be certain times when the development directions are different than where the open-source community wants to take it. So in those instances you have divergences in the code tree. A lot of times, though, we'll be exactly in synch."
One analyst said the meltdown between KDE and Apple was the exception, rather than the rule, when it came to corporate-open-source relations.
"For the most part, Apple and others have worked closely with the open-source community, often contributing considerable time and code," said Burton Group analyst Gary Hein. "We tend only to hear about those situations that don't go as smoothly."
Safari isn't Apple's only open source-based software title; the company's Macintosh operating system is based on the Darwin open-source project.
One KDE contributor said the demise and divergence of the Apple-KDE relationship was no surprise.
"It was big news when Apple decided to take the KHTML code and run with it," one KDE contributor wrote in a posting titled "The bitter failure named 'Safari and KHTML.'" "But we, those who were there, with their collective nose in the code all the time, knew from the beginning that the collaboration smelled fishy."
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.
"As long as they needed us, they used us, but when they gained enough knowledge they had no reason to keep sending us reviews and patches," Rusin said. "At a certain point they decided it was a waste of time for them, and at that point the communication just stopped...We had hopes that they would pour resources into KHTML. But that never happened."