People have to eat, even developers of 'free as in beer' software. So I wonder, what are some of the common revenue models that are used by such companies when they aren't directly selling the software? I know one or two (advertising and support contracts) but are there more?

As Walter noted, if you know what the pros/cons of the model(s) are then please include them.

This is a great question. Outside of advertising I always wondered how Stallman's premise could survive. As a writer, I can tell you there are definitely a lot of publishers that think writers don't need to eat. As programmers, we probably all have dealt with situations where people think having us fix their computers or propping up a website for them should be free. So how do open source apps keep their developers alive?
–
Bernard DyJan 1 '11 at 1:18

2

One approach I've seen used tragically often is the whole "don't document a damned thing and charge for consulting services" model.
–
JUST MY correct OPINIONJan 1 '11 at 9:14

1

Service! Otherwise known as "our people is our product."
–
MacneilJan 1 '11 at 19:01

Seems to be the case with valgrind too, his creator (Julian Seward) is invited regularly by my company to form our developers to use this suite (and I think may develop tools over this framework for a fee too).
–
Matthieu M.Jan 2 '11 at 18:35

There's the MySQL model: make a great free product, and sell support services off that.

A spin on this model is Steel Bank Studio which is a company providing commercial support for an otherwise community-owned product, Steel Bank Common Lisp. Nikodemus Siivola, the guy behind SBS, is one of the core hackers for SBCL, but my point is that you don't necessarily have to be the "owner" of a free/open source product to make money from it.

I've always wondered about this model. Logically, in order to make selling support for price-free software profitable, your software has to require enough paid support that you'd end up recouping your development costs plus extra. Wouldn't that make it the sort of software no one would want to use?
–
Mason WheelerDec 31 '10 at 22:10

1

Obviously, no one's going to pay for support on something completely rubbish - I mean, pay to have bugs in a free product?! So I've always figured "support" meant custom tweaks or extra extensions or consulting. It did seem to work well for MySQL, even ignoring the big buyout.
–
Frank SheararDec 31 '10 at 22:23

The common model for free software is to sell support and services along with that product.

For instance, I created a file storage application. You can download it for free and you can configure it to run on your very own server that is setup to handle it. However, if you do not wish to configure your server or do not have one, you may purchase a storage account on one of our servers. Another way is that if you are having trouble setting the application to run on your server, we can help you setup the components step-by-step, albeit for a fee.