There is another option, unpopular with some open source advocates, the source-only option. You simply sell your software product (with source code) for a price. That's it. Simple and uncomplicated. Your customers get the source of your app. They can modify the code to suit their needs. But unlike open source, they cannot re-distribute the app. Very few companies would object to this. Some popular and profitable proj…
That model falls apart from the start. If anyone is savvy enough to compile from source then why buy it? If the code is free, then, I don't see how they'd even bother to pay for it; it being the compiled version; of course. It the source is out they can't hardly enforce anything or much. People will just go to github and compile it for free.
Sure, there may be some individuals who will refuse to pay, but companies will not risk legal violations by not adhering to the licence conditions for the app.
In fact, the 'source-only' model is nothing new. Back in the late 1990s, developers used to sell UI and data components for Delphi with full source code. Even though code wasn't published to public code repositorities, there was nothing to stop individuals posting those components to the internet for others to grab without purchasing. Even so, developers were able to successfully sell their 'source-only' components to other developers and companies.