"Open source" in genere include la fornitura del codice sorgente del programma in un modulo modificabile comprensibile e compilabile e . Quindi qualsiasi tipo di controllo della licenza artificiale può essere facilmente disabilitato da chiunque sia in grado di compilare il codice e abbia una conoscenza di base della programmazione.
Ovviamente, è possibile utilizzare una licenza che vieta di modificare qualsiasi cosa nel vostro programma (o almeno di distribuire qualsiasi ramo modificato del vostro software), così le persone possono solo leggere il vostro programma, non cambiarlo. Ciò che non è possibile applicare, tuttavia, è che le persone rimuoveranno segretamente il controllo della chiave di licenza o che le persone lo faranno al di fuori della propria giurisdizione. E quando il tuo sistema di licenze è completamente aperto, non puoi impedire alle persone di imitare lo schema di licenza, generare le proprie chiavi o fornire un server di licenza fasullo, anche senza cambiare il codice originale. (In effetti, questo viene fatto regolarmente anche quando i programmi sono chiusi, ma per un programma open source rendi questo "approccio" più fattibile allo "sviluppatore medio", non solo alle persone con esperienza nella reengineering.)
Quindi una delle idee più popolari per essere pagati per l'open source è avere una parte importante del software che non sia inclusa nel codice sorgente, la parte che fornisci dal tuo server. Più funzionalità si mettono sul lato server, minore è il rischio che il server venga ricostruito da chiunque altro. Un server che fornisce solo informazioni booleane se "un determinato codice di licenza è valido" è fin troppo facile da copiare. In realtà ciò significa che il tuo modello di monetizzazione diventa un modello di servizio. Ad esempio, come fornitore di un gioco multiplayer, il client di gioco potrebbe essere open source, ma il server controlla le parti letali del gioco e puoi addebitare alle persone l'utilizzo di quel servizio per una determinata durata.
L'altra opzione che hai per monetizzare è creare una libreria open source che possa essere usata liberamente da chiunque per software non commerciale, liberamente per software interno, ma pagata per software commerciale, off-the-shelve. Le persone ti pagheranno perché c'è un certo rischio che una violazione della licenza possa essere provata da te, perché vengono pagati per il loro software (in modo da poterlo affibbiare per spendere parte di quei soldi per te), e perché vogliono ricevere aggiornamenti della tua biblioteca da te. Per un tale modello di distribuzione, tuttavia, in genere non è necessario alcun codice di licenza.
EDIT: Ovviamente, ci sono più alternative per ottenere denaro per il software open source rispetto ai due precedenti. Questo articolo di Wikipedia ne elenca alcuni.