Stai chiedendo qualcosa di impossibile. Parte della definizione open source è che le persone possono utilizzare il software come desiderano. Ciò include "i propri sforzi commerciali". Non ci sono licenze open source che ti darebbero quello che vuoi. Tuttavia, se non vuoi che altre persone costruiscano e vendano il tuo programma, puoi farlo pubblicando il codice liberamente, ma non le risorse (grafica, ecc.) Tuttavia, un simile approccio potrebbe ostacolare la capacità di "geek e hacker" "per fare qualcosa di utile con il tuo codice.
Se vuoi vendere software open source, devi essere in grado di convivere con il fatto che non è esclusivo per te. È così che funziona. Invoglia le persone a pagarti per questo fornendo valore al di sopra e al di là di quello che possono ottenere con un compilatore. Ad esempio, è possibile eseguire un server che fornisce servizi utilizzati dall'applicazione. Puoi fornire supporto per il tuo programma, con supporto prioritario per gli utenti a pagamento. Puoi eseguire beta chiusi per le versioni aggiornate a cui solo gli utenti a pagamento hanno accesso. E questo è solo in cima alla mia testa.
Devi cambiare la tua mentalità. In questo giorno moderno, non si ottiene che le persone paghino per il software obbligandole a farlo. Non funziona per il software proprietario e funziona ancora meno per l'open source. Fai in modo che la gente paghi il software convincendoli che il valore che riceverebbe pagandolo supera il prezzo che stai chiedendo.