Facebook Goes Open Source Under CPALDo you dream of building a site that's got that special Facebook mojo? You wouldn't be alone. Now you and legions of developers have it one step easier, since Facebook released its Facebook Open Platform into open source. This platform includes their API infrastructure, FQL parser, FBJS and their implementations of various methods and tags.

However, to use this code, you'll need to be aware of the Common Public Attribution License (CPAL), which the Facebook Open Platform was released under.

Provisions of the CPAL

The CPAL is an Open Source Initiative-approved open source license originally developed by SocialText and based on the Mozilla Public License (MPL). This license contains the same provisions that make the MPL incompatible with the public license, so you cannot mix or link code from these two licenses together.

Under the provisions of the CPAL, you must include a public attribution to Facebook on your site when you use their Facebook Open Platform. Specifically, "Each time an Executable, Source Code or Larger Work is launched or initially run (including over a network), a display of the Attribution Information must occur on the graphic user interface employed by the end user to access such Covered Code (which may include a splash screen)."

The attribution itself includes:

  • Attribution Copyright Notice: Copyright © 2006-2008 Facebook, Inc.
  • Attribution Phrase (not exceeding 10 words): Based on Facebook Open Platform
  • Attribution URL: http://developers.facebook.com/fbopen
  • Graphic Image as provided in the Covered Code: http://developers.facebook.com/fbopen/image/logo.png

Another important provision regards allowing access to your Facebook Open Platform site over a network. When your site goes live, you have to release the source code for your modifications. This has nothing to do with whether people have to pay for access, or whether you're selling the site code as a platform other people might install.

One place in which the CPAL and the GPL agree is on the ability to choose which version of the license applies to your code. The CPAL states: "Once Covered Code has been published under a particular version of the license, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Facebook."

CPAL Implications

While Facebook is sharing its code, it's not doing so at the expense of giving competitors a leg up. Sure, a competitor could look over this code (though their legal department may suggest otherwise), but they couldn't use it unless they wanted the Facebook brand splashed prominently on their site.

Pamela Jones with Groklaw points out that the graphics and logo clause requires an unknown number of developers, users, and sub licensees, "any of whom can modify the code and put it in places you might not want your mark to be or in ways you aren't happy with," to use your trademark on their projects."

Anyone who uses your code. Is this a legal can of worms you really want to open?

"Red Hat, as you know," adds Jones, "lets you use their code til the cows come home, but don't touch their trademark. Ditto Mozilla with the Firefox mark. And I think they are correct. Trademarks represent you, your brand and the way trademark law is set up, you can't send a mark out into the wild and then forget about it. The risk of losing your mark, not to mention your reputation, is great."

The CPAL hasn't found wide adoption, with a few interesting projects adopting it but most turning to other options. One reason is likely its GPL-incompatibility, as any developer who has to interact with GPL'ed code just can't legally choose the CPAL. Another reason just might be concerns about potential courtroom disasters in the future.