It's not donations that are meant to sustain open source software. The idea is that it is not the software itself that is meant to sustain itself (because information ought to be free) but rather things like support, maintenance and other tailored services are supposed to provide the funding for the project and for the people working on it.
This is why commercial Linux distributions can work and have worked.
Yes, granted this doesn't apply to all OSS, but in the cases that it doesn't, then it's definitely just for the benefit of the programmer to be able to freely work on, share and collaborate to complete something.