By now most of you have heard of the copyright infringement and code theft claims involving the Mambo content management system and businessman Brian Connolly. Legal questions have been raised, guesses have been made, commentary has flowed forth, and all involved in the dispute have had their 15 minutes to relay their sad tales of injustice. Now it is time for the facts, and NewsForge can definitively say that Connolly's legal claims against the Mambo community are baseless.
Some background: Brian Connolly, co-founder of the Literati Group, had paid Mambo developer Emir Sakic to customize Mambo OS (in this instance, OS stands for open source, because there is a closed-source version of Mambo called Mambo CMS) to look like a newspaper. Part of this customization involved Sakic coding a text block for the front page that would span the usual two-column news listing. This lead story block involved little more than a
colspan HTML attribute inside of an otherwise standard table cell element and a few lines of associated code to make it look somewhat different.
Connolly believed that this customization was a proprietary one. Since his contract with Sakic (which Sakic says was never signed; Connolly refused to provide NewsForge with a copy of the alleged contract) stipulated that all copyrights would be assigned to Furthermore, Inc., he figured that he would be able to further protect what he refers to as his "invention."
Unfortunately, this invention is neither unique nor new. Many other content management systems have this functionality and have been using it for some time -- some are proprietary, such as the BBC News Web site, and some are free software, such as Slash, which has an extensibility that allows a "lead story block" function.
The red herring
When Connolly first put up his Furthermore demo site, he noticed that his server logs showed that a perceived competitor had downloaded about 20MB worth of data from his site. Connolly immediately interpreted this as wholesale code theft when, in fact, he had no reason to believe that any theft had taken place. The competitor was in the process of designing a site around Mambo OS and, like Furthermore, also employed the lead story block. NewsForge contacted this competitor and found him to be extremely upset over Connolly's threats; the competitor insisted that we not use the name or any details about their company in this story, but vehemently denied that any sort of code theft took place.
Mambo uses the PHP extension for the files that contain code, and that code is never published to a Web page; instead it is rendered by the server and turned into HTML, which in turn is rendered by the browser to show you a Web site. If you want to view the HTML code, you can easily do so by selecting the View Source option. Since the viewer never sees what's in the PHP files and cannot access them directly without special access to the Web site, it would be impossible for anyone to download Connolly's code without root or direct FTP access to the site.
Someone could, however, legally save the HTML to their hard drive and attempt to reverse-engineer the code back to usable PHP. This is a lot like trying to design the machines that manufacture automobile parts by examining a finished car. Alternatively someone could make the site static by using the viewable HTML.
Copyright infringement or code theft?
It would seem to be a fairly clear-cut case if you only see Connolly's side of the story. But the code committed to the Mambo OS project was not the same code that Sakic wrote for Furthermore. The Furthermore code was nine lines of hardcoded HTML, according to Sakic; it did not have to be dynamically generated because Furthermore is not designed to be theme-able. Mambo, on the other hand, is designed to be fully customizable. So a month later, in October 2003, Emir Sakic developed a way to do the same thing dynamically and committed it to the Mambo core.
Sakic's mistake was not in developing and distributing a derivative work of the code he wrote for Connolly, but in emailing Connolly to tell him what he'd done, with the facetious comment, "Hope you don't mind" tacked on to the end. This is where the trouble started, yet no illegal act had been committed.
Code was not stolen verbatim -- all parties agree on this matter -- and it clearly was not an act of malice on anyone's part. Therefore, according to Ravicher's definition, this contribution was not code theft in the legal sense.
Copyright infringement is a broader term and would seem to be a better fit for this situation; after all, the contract called for all copyrights to be assigned to Furthermore, Inc. But the code was a derivative of GPL-licensed code, thereby making it a derivative work of the parent code and automatically licensing it under the GNU General Public License.
Connolly claims that since he is the copyright holder of the original code that he can prohibit redistribution of a derivative work of that code even though it's all licensed under the GPL. Eben Moglen, counsel for the Free Software Foundation and Columbia University law professor, wrote an article called "Enforcing the GPL, Part I" in August 2001 in which he wrote:
Copyright grants publishers power to forbid users to exercise rights to copy, modify, and distribute that we believe all users should have; the GPL thus relaxes almost all the restrictions of the copyright system. The only thing we absolutely require is that anyone distributing GPL'd works or works made from GPL'd works distribute in turn under GPL. That condition is a very minor restriction, from the copyright point of view.
So because the code falls under the jurisdiction of the GPL, no one can place any restrictions on redistribution, including the copyright holder. This means that even if it could be definitively said that Sakic created a derivative work of the code that he'd written for Furthermore, Connolly has no legal recourse for preventing its distribution or use.
Just to make sure, we also asked Open Source Initiative attorney Larry Rosen, author of the new volume Open Source Licensing: Software Freedom and Intellectual Property Law, about this point of legal trivia.
"By definition, all software released under the GPL means that one can assume the work may be copied, distributed, or otherwise modified by any other user," Rosen said. "The creator can't 'GPL' something and then turn around and say, 'I really didn't intend this to be used any other way.' That makes no sense."
Mambo users are safe
After having argued on the Mambers message forums with developers and members of the Mambo community and seeing that no progress could be made, Connolly decided to move the issue to a larger venue. His final method of defending what he perceived to be his invention and property was to put up a Web site telling his half of the story and threatening to sue some of the approximately 5 million Mambo OS end-users. To better accomplish his goal, Connolly contacted SCO Group spokesman Blake Stowell and, during the course of a five to 10-minute phone conversation, obtained media contacts that Stowell thought would be helpful to Connolly's situation.
Nothing can stop Connolly from making good on his public threats to sue innocent end-users -- anyone can file a lawsuit for any reason -- but the legal basis for such action is nonexistent. Larry Rosen told us that he "could not imagine any court issuing a judgment against any user of software released under the GPL, as long as the user abides by the rules of the license."
It has already been established that all code in question is under the GPL and may be freely used, distributed, or modified. But as a further testament to the fact that the lead story block code in Mambo OS is distinctly different from that which powers Furthermore, we've prepared a brief code comparison. (Click on the below images to enlarge them)
In the left-hand photo you'll see the table that contains the front page stories in Furthermore. On the right, the equivalent code as obtained from the MamboForge online demo and configured to use the lead story option. This is not the originating PHP, but the resultant HTML that both sites generate. Brian Connolly refused to provide us with the Furthermore front page code and Emir Sakic refused to tell us where in the Mambo code his contribution was. Although we're reasonably sure we found the correct PHP in a Mambo file called content.php, we have nothing to compare it to. The HTML that is rendered by that PHP is a reliable basis for comparison, however, and it can be freely viewed by anyone through a standard Web browser. For this example, we've removed unnecessary white space and copied the content from the demo code to the Furthermore code so that you can better see the exact differences in how they are rendered. It should additionally be noted that Furthermore is not proprietary -- it is merely a customized version of an earlier version of Mambo OS, so there will be some inherent and unavoidable similarities.
The Mambo code is much cleaner; more of the presentation elements have been relegated to an external cascading style sheet, and in accordance with HTML 4.01 standards, the code tags are all in lowercase. It also uses a
span tag to separate the author text style from the date text style. The Furthermore code uses
div tags around the content and employs the deprecated
font tag in the main content cell, whereas the Mambo code puts all font specifications into the style sheet. The primary operator here is the
colspan="2" attribute, which turns a two-column table into a single-column for the specified row, thus producing one story with two below it. There really isn't any other way to code the colspan attribute without using separate tables, which is a far less elegant solution. Although we did not ask any copyright experts about
colspan="2", there does not appear to be a legal basis for claiming a copyright on it.
That's the lead story block, and as you can see, there isn't much to it. Although Emir Sakic said it was nine lines of code, only one of them really made the magic happen.
Connolly admits that he has not compared the code for himself, or even looked at the Mambo code to verify that it contains code developed specifically for Furthermore. Brian Connolly told NewsForge that he "could tell just by looking at their site," meaning how the supposedly offending Mambo Web sites that employ the lead story block appear in his Web browser. Neither did Connolly commission any third party experts to compare code directly.
The Connolly/Mambo situation boils down to one man not doing enough research into the licensing details of the GNU General Public License, then taking his case to public message forums instead of private communication with the project leadership and eventually resorting to threatening uninvolved people with litigation.
The problem all along has not been that Connolly was violently seeking revenge, but that he'd made several erroneous assumptions about a wide variety of things, then used those assumptions to unintentionally mislead people. He spoke with Rosen of OSI, Weathersby of the OSSI, Stowell of SCO, and a few other unnamed sources who gave Connolly good advice. The problem is, he told them the wrong story.
No code was stolen or taken; rather two separate modifications were made to the same GPL code to accomplish the same very basic and common task in two very different ways.
Connolly told us that this would not be resolved in the media, but his actions paint a portrait of a man who tried very hard to gain support from the press and free software community. Based on his statements alone, he appears to be the victim rather than the aggressor, but the facts say that Brian Connolly is the victim not of code theft or copyright infringement, but of his own reluctance to perform due diligence in going forward with public threats before gathering evidence to prove his case.
This is hopefully the end of this story, but it also marks the second time that the boy has cried wolf in the press (the first being SCO). Each time a false code theft or copyright infringement claim is publicly made against free software, the patience and understanding of the community wanes. Companies like SCO and Furthermore, Inc. make it more difficult for genuine code theft and copyright infringement claims to be made by people who have checked their facts and gathered reliable evidence.