- How and what issues can signing out this agreement prevent?
- Does it matter how big or minor contribution I made?
- Why some projects require signed CLA to accept patches, while others don't? (eg. node.js vs rails)
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
CLAs generally exist to do several things:
Most fully volunteer projects, such as Rails and Node, do not require CLAs, if for no other reason than because there's no backing entity to require or do anything meaningful with them in the first place. (FSF-backed projects are the major exception here, as previously noted.) Most commercially backed open-source projects, such as those that are official Google/Oracle/Apple products, do require some form of CLA, both because most companies have lawyers who think about those kinds of things, and because there is a single backing entity to enforce that kind of thing.
Benjamin's answer was pretty clear but I'd like to emphasize a single point. CLA's protect companies using or contributing to projects. Companies, particularly large ones, are terrified of being caught off guard by legal issues. I've had corporate lawyers tell people I know that even in slam dunk cases where the law is on your side, you can only be about 60% sure that you'll win the case.
Consider the situation of a company, particularly a very large one with lots of revenue, builds a product around an open source tool. They gain customers, build out infrastructure and hire employees. If all of a sudden a contributor to the original tool sues them for patent or copyright infringment, the company is in a lot of legal hot water. If they stop providing their product, they've wasted money on infrastructure and employees they don't need and more importantly, they're pissing off customers. On the other hand, if they stop providing their project, their liability ends while the case in figured out.
Considering the current legal software landscape, CLA's are the best way to make companies feel comfortable using and contributing to open source software. It's not ideal (it'd be nice to never have to deal with any of this legal stuff) but right now it's one of the few ways of making these contributions pos
CLA's might also (in addition to other things mentioned on this page) protect the contributors from legal issues. Have a look at this excerpt from a CLA by Google: