Friday, September 10, 2010

License Evolution and Hosting Projects on Code.Google.Com

Nearly 6 years ago when we first started thinking about doing project hosting on code.google.com we noticed something particular about the other open source project hosting sites. They either accepted all Open Source Initiative (OSI) approved licenses, like Sourceforge, or they only accepted one, like the Free Software Foundation's Savannah project, which only accepted GPL'd projects.

In our day-to-day work looking after open source licensing, we lamented the proliferation of licenses and decided that we would split the difference and only offer a very limited subset of the approved OSI licenses choices to our users as a stand against the proliferation of the same. You see, we felt then and still feel now that the excessive number of open source licenses presents a problem for open source developers and those that adopt that software. Thus when we launched project hosting on code.google.com, we only launched with a small subset of licenses.

This was hardly a barrier to adoption. While there were some complaints from some corners, in the intervening 5+ years since then, we've grown to become one of the largest hosts while allowing that ethic behind license choice to persist.

What's changing and why change now?

We've added an option to the license selector to allow any project to use an OSI approved license. Simply select “other open source” and indicate in your LICENSING, COPYING or similar file which license you are using.

Public domain projects are still only allowed on a case by case basis, as true public domain projects are quite rare and, in some countries, impossible. We encourage those that want to truly ship public domain to look at how D. Richard Hipp does things around SQLite and emulate his style. Email google-code-hosting@googlegroups.com if you’d like to request that license be applied to your project.

(Please note: we will continue to hunt down and kill non-open source projects or other projects using Google Code as a generic file-hosting service.)

Why change now? The TL;DR version is that we think we've made our point and that this new way of doing things is a better fit to our goal of supporting open source software developers.

The longer form of the reason why is that we never really liked turning away projects that were under real, compatible licenses like the zlib or other permissive licenses, nor did we really like turning away projects under licenses that serve a truly new function, like the AGPL. We also think that there were inconsistencies in how we handled multi-licensed projects (for instance: a project that is under an Apache license, but has a zlib component.)

To rectify this, we decided to add an additional option to the license selector that would accommodate some flexibility around open source licenses. We hope you find it useful and look forward to seeing how you use the site!

13 comments:

  1. This is great!

    ReplyDelete
  2. With regard to the public domain, the Creative Commons CC0 license now provides a (presumably) legally robust mechanism for releasing content to the public domain, or at least the closest thing possible in certain countries.

    ReplyDelete
  3. A good move by your part. Google Code just gets more awesome

    Ruben

    ReplyDelete
  4. Why doesn't Google also offer hosting for non open source projects? Wouldn't this go hand in hand with App Engine for business etc?

    ReplyDelete
  5. Do you know what would be killer, Google Code for Google App and allow private projects.

    ReplyDelete
  6. Nice, but how about actually working on the site. There are highly ranked issues that hasn't been implemented in YEARS.
    http://code.google.com/p/support/issues/list

    Google code has a derelict feel to it.

    ReplyDelete
  7. @Jacob - We're actively working on resolving those issues.

    Over the last year our priorities have been reliability and latency. That, admittedly, has taken a lot more of our time than we would have liked.

    We've also spent a huge amount of time supporting Google Open Source projects such as Chromium, Android, etc. As a result, we've made more progress in areas like the issue tracker and less in other areas.

    For a log of recent visible changes, please take a look at:
    http://code.google.com/p/support/wiki/WhatsNew

    ReplyDelete
  8. Very good. More choice
    Time to implement a licence chooser now

    ReplyDelete
  9. This comment has been removed by a blog administrator.

    ReplyDelete
  10. This comment has been removed by a blog administrator.

    ReplyDelete
  11. this is really true! So imagine an awsome thing like the ohloh source code license analysis
    (example: https://www.ohloh.net/p/idemauth/analyses/latest) combined with a simple algorithm to detect incompatibilities... shake it, et voilà: coogle code has a selectbox to select licenses that offer to the lazy developer just the possible alternatives.

    Think seriously at this if you want to reach consistency in the google code licensing jungle!

    (you can also improve the ohloh detection with a common binary library analyisis feature (e.g. if a project has a .jar in the svn, a .jar that is named like, or that appears to contain the project X with Licence A, so add licence A to the algorithm)

    ReplyDelete
  12. The statement about Savannah is incorrect. Their requirements say:

    "You will be presented with a choice of Free Software licenses for your project. For hosting on Savannah, you must use one of these licenses. You will be the copyright holder of the text you write for your project, but these licenses give the freedom to anyone to use, study, copy, and distribute the source code and distribute modified versions of it.

    For manuals, we allow only GNU FDL version X or later, or other licensing which is compatible with that.

    If you wish to use another license that is not listed, let us know and we will review these requests on a case-by-case basis."

    ReplyDelete