Here is the problem though: let's assume that the developer really wants to release the source code , but the problem is that they have used a third-party library where they cannot legally release because they simply don't have the rights to it. This complicates open-sourcing that software (this is already proven from time-to-time, for example the OpenJDK Java runtime needs to and has changed third-party components l…
> but the problem is that they have used a third-party library where they cannot legally release because they simply don't have the rights to it. Just release everything else. Someone can write their own library for that or maybe even find a replacement in the open-source world.
First, replacing the library requires extremely high/rare expertise and several man-years of development to implement a basic version. These never get replaced in open source because the level of individual investment is extraordinary; these libraries only get built when a company invests a few million dollars hiring one of the handful of people that know how to write one over years, which is rare and at which point they want to own it. The barrier to open source MVP is simply too high. Even worse, in some cases the licensed version becomes unavailable/unsupported because the person that designed it moves on but at least there is an incentive to spend a lot of money to remedy that.
Second, replacing the library requires computer science that has no description in literature. I've seen teams of CS PhDs spend years trying to clean room equivalent libraries with little success when there are few hints in existing computer science literature how the original library capability was even achieved. They might be able to buy a license to the original library but many times that is cost prohibitive (millions of dollars) or not available at all (licensing restrictions).
Not every application has a library dependency with these properties but it isn't that rare either. These libraries are used for good reason and sometimes provide central functionality without which the rest of the source code is relatively low value.