Let's say I have an open source project under the GPLv3 which only contains a foo.txt.
"If you are creating an open source application under a license compatible with the GNU GPL license v3, you may use BrowserBox Pro under the terms of the GPLv3."
So I can merge the BrowserBox Pro under GPLv3 to become part of my project.
Now I remove the foo.txt and my project will be a BrowserBox Pro clone under GPLv3 without the commercial restriction.
Nonetheless, I agree with your broad point: that if somebody can use it under the GPL, they can redistribute it and then all those downstream users can use it under the GPL.
But I disagree there is anything to fix. It's copyleft FOSS but businesses are encouraged to buy a license. Everybody wins.
He needs to fix it - if he wants his license to enforce being paid for commercial use.
It may be too late!
Other products in this: Qt - https://doc.qt.io/qt-6/licensing.html, Isotope - https://github.com/metafizzy/isotope#license
What do you suggest?
In terms of there being an actual better solution, though? I don't know. We're doing what other products are doing.
We remain open to that possibility there could be a better solution tho. But we haven't yet seen anything to convince us we're not on the money as we are.
Then it wouldn't be open source, so I am not rooting for that.
However, for better or worse, large successful businesses can be built on scaring companies to pay for a commercial proprietary license and/or support, for copyleft open source.
But anyway it sounds like he needs to decide what he wants, and that's probably a non-open source license, if he doesn't want commercial use.
Which shows the problem with this specific license in a single sentence.