I think the route of giving it all away for free and either offering hosting if the project needs it or (business) support is the most successful way of doing this.
I have no problems whatsoever with donation buttons / banners (like Krita does) but I’m afraid random donations is not really a sustainable model for most projects. I try to remember to donate to projects I use a lot (especially if it’s for work) but it is another thing on my todo list and not one with high priority, so I don’t do it as often as I’d like … 😓