I solved this problem by not making my project open source. Instead I launched a limited-supply cryptocurrency for it and made it a rule that anyone who owns at least x tokens is entitled to a copy of the code with full rights to use, read and modify... Because there are a limited number of tokens, it means that there are a limited number of licenses and token price would go up with demand.