Programmers don't want to earn salaries
Apart from maybe Microsoft, nobody seems to be making any money from selling software these days. Such software as you could buy consequently is half-finished.
In order to finish, companies need to sell support in order to feed their programmers and to get the software 90 % finished by the time it is replaced by the next version.
Without support, all yyou have is lots of dubious repositories of free (as in free beer) source code. which takes to years to turn into something workable. You shoyld support costs to the personnell costs of doing it in house.