Dr. Dobb's Journal - November 2008 - (Page 16) Cover Story by Michael Swaine Saving Open Source An important legal decision for everyone who creates or uses open-source software The cause of free and open-source software (FOSS) dodged a bullet in August of this year. On August 13, the U.S. Court of Appeals for the Federal Circuit, known familiarly as “CAFC” among court watchers, made known its decision in a closely watched case that has immediate and far-reaching implications for anyone who writes or uses free or open-source software. Although Jacobsen v Katzer specifically upheld the Artistic License, the 12-page decision explicitly referred to Creative Commons and other copyleft licenses. This case was the first real test in any U.S. court of the legal teeth behind open-source licenses. This alone makes Jacobsen v Katzer both important and interesting, but as with most legal cases, the story behind the story is also interesting. And here the case behind the case, and the software at issue, evoke themes that date to the earliest roots of free and open-source software back in the 1950s. The linchpin of the court’s decision had to do with a legalistic nicety, the distinction between a covenant and a condition. Violating a condition of a license based on copyright violates the copyright, but violating a separate covenant that is added above and beyond any conditions of the copyright does not. The court decided that, because the Artistic License was extremely broad in its scope, not placing very many restrictions on the rights of a licensee to create derivative works from the software, the copyleft language in the license constituted a covenant outside the copyright itself, and the only remedy open to Jacobsen for violation of the covenant was recovery of monetary damages he had suffered from the violation. Having to prove monetary harm from violation of software provided for free is not all that easy, and the court was saying that this was Jacobsen’s only claim. Katzer had not violated Jacobsen’s copyright. The decision was a serious blow to free and open-source software. The whole idea of copyleft licensing is that a violation of the license is a violation of the copyright. The court’s interpretation, making the defining conditions of a copyleft license merely extra covenants, would severely weaken the force of licenses, whether the GPL or Creative Commons or some other model of FOSS licensing. Jacobsen v Katzer In 2006, Bob Jacobsen sued Matthew Katzer and his company Kamind Associates, alleging that Katzer had violated licensing terms for Jacobsen’s Decoder Pro, a utility for controlling model railroad signals and a portion of his Java Model Railroad Interface (JMRI). Decoder Pro was released under the Artistic License, an open-source license. Kamind had, Jacobsen claimed, used the Decoder Pro software in his own Decoder Commander utility without documenting the changes or attributing the licensed software to Jacobsen, both of which would be violations of the license. Jacobsen brought suit in the U.S. District Court for Northern California and sought, among other remedies, monetary damages and an injunction to stop Katzer from using the code. The case seemed like a no-brainer: The code in the two utilities spoke for itself, Jacobsen’s code was clearly covered by the Artistic License, and Katzer had clearly not followed the license requirements in releasing his utility. So it was something of a shock, not just to Jacobsen but to the FOSS community generally, when the court handed down its decision. The court refused to issue the injunction and drastically limited the kind of monetary damage Jacobsen could recover, if any, for Katzer’s violations. 16 Dr. Dobb’s Journal l www.ddj.com l November 2008 On Appeal Jacobsen appealed the ruling and the Court of Appeals for the Federal Circuit (CAFC) reversed the lower court. Disaster averted, was the general sense in the FOSS community. But it’s worth taking a look at the details. The CAFC found that the conditions of the Artistic License were in fact conditions on the scope of the license. The court pointed in particular to the phrase “provided that” in the license, a phrase that http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - November 2008 Dr. Dobb's Journal - November 2008 Contents Friday Night Fish Fry Alia Vox Developer Diaries Developer's Notebook Saving Open Source Conversations iPhone Building Your Own Web Server Green Telnet What's New In Boost Threads? Testing Service Oriented Architectures Test Case Generation, UML, and Eclipse Unit Testing Web Services C3 Programming The Agile Edge Swaine's Flames Effective Concurrency Dr. Dobb's Journal - November 2008 Dr. Dobb's Journal - November 2008 - (Page BB1) Dr. Dobb's Journal - November 2008 - (Page BB2) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page Cover1) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page Cover2) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page 1) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page 2) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page 3) Dr. Dobb's Journal - November 2008 - Contents (Page 4) Dr. Dobb's Journal - November 2008 - Contents (Page 5) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - November 2008 - Alia Vox (Page 10) Dr. Dobb's Journal - November 2008 - Alia Vox (Page 11) Dr. Dobb's Journal - November 2008 - Developer Diaries (Page 12) Dr. Dobb's Journal - November 2008 - Developer Diaries (Page 13) Dr. Dobb's Journal - November 2008 - Developer's Notebook (Page 14) Dr. Dobb's Journal - November 2008 - Developer's Notebook (Page 15) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 16) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 17) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 18) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 19) Dr. Dobb's Journal - November 2008 - Conversations (Page 20) Dr. Dobb's Journal - November 2008 - Conversations (Page 21) Dr. Dobb's Journal - November 2008 - iPhone (Page 22) Dr. Dobb's Journal - November 2008 - iPhone (Page 23) Dr. Dobb's Journal - November 2008 - iPhone (Page 24) Dr. Dobb's Journal - November 2008 - iPhone (Page 25) Dr. Dobb's Journal - November 2008 - iPhone (Page 26) Dr. Dobb's Journal - November 2008 - iPhone (Page 27) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 28) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 29) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 30) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 31) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 32) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 33) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 34) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 35) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 36) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 37) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 38) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 39) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 40) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 41) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 42) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 43) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 44) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 45) Dr. Dobb's Journal - November 2008 - Testing Service Oriented Architectures (Page 46) Dr. Dobb's Journal - November 2008 - Testing Service Oriented Architectures (Page 47) Dr. Dobb's Journal - November 2008 - Testing Service Oriented Architectures (Page 48) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 49) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 50) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 51) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 52) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 53) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 54) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 55) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 56) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 57) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 58) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 59) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 60) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 61) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 62) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 63) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 64) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 65) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 66) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 67) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 68) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 69) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 70) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 71) Dr. Dobb's Journal - November 2008 - Swaine's Flames (Page 72) Dr. Dobb's Journal - November 2008 - Swaine's Flames (Page Cover3) Dr. Dobb's Journal - November 2008 - Swaine's Flames (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.