MySQL: quando si deve pagare la licenza?

mysql_logoUna delle domande che mi vengono fatte piu’ di frequente è “MySQL si paga per uso commerciale?“. La risposta non è delle piu’ semplici.

Leggendo direttamente il sito web di MySQL, si possono trovare due pagine dedicate alle licenze: una per chi fa sviluppo di software opensource ed una per chi sviluppa software commerciale.

Dopo una lettura superficiale delle due pagine, potremmo essere tratti in inganno e pensare che sviluppando un’applicazione commerciale, si debba per forza acquistare una licenza commerciale di MySQL. Questo non è vero.

Tutto dipende dal tipo di librerie di interfacciamento che vogliamo utilizzare. MySQL mette a disposizione due modi per interfacciarsi al database: una propria API scritta in linguaggio C ed un socket in ascolto che riceve comandi tramite una normale connessione TCP/IP.

E’ chiaro che scrivendo un’applicazione che va a fare l’include di (faccio un esempio) mysql.h poi io debba rilasciarne i sorgenti. La licenza GPL con il quale è stato rilasciato MySQL (ed anche le sue librerie client) dice chiaramente che quando si “linka” codice GPL ad altro codice, il risultato deve essere per forza rilasciato sotto licenza GPL.

La licenza GPL però non impone vincoli di utilizzo dell’applicazione stessa. Utilizzare quindi una libreria client che al posto delle API, usa il socket TCP/IP, ci permette di utilizzare MySQL anche da un’applicazione closed-source, senza bisogno di ottenere una licenza commerciale.

E’ esattamente quello che fa la libreria di interfacciamento di Python oppure di PHP. Esse utilizzando il metodo di connessione al socket, senza fare l’include del codice di MySQL.

Riassumendo: se ci troviamo a scrivere un’applicazione commerciale che sappiamo non verrà distribuita insieme al codice sorgente, dobbiamo preoccuparci solo di utilizzare una libreria client che utilizzi il metodo di connessione tramite socket al database.

C’è infine da aggiungere una cosa: se si utilizza codice opensource per uso personale oppure interno alla propria azienda, senza distribuirlo in giro, la GPL non ci impone di rilasciare le modifiche che abbiamo fatto ai sorgenti GPL che stiamo utilizzando.

Il caso piu’ lampante è quello di Google: essi utilizzano tonnellate di codice GPL, però non distribuiscono un programma, offrono un servizio. Questo gli permette di non dover rendere pubbliche le modifiche fatte al codice originale.

Credits: questo articolo è stato possibile in gran parte grazie all’aiuto ed ai consigli di Giovanni Bajo (che pur chiedendomi di specificare che non è un avvocato e che quindi potrebbe anche sbagliarsi, ha senz’altro fatto un ottimo lavoro) .