Please see:
Google Summer of Code