Un software è open source se risponde a vari requisiti:
Il programma deve essere distribuito con una delle tante licenze Free, approvate dalla Open Source initiative, che vanno dalla GNU/General Public License alla Apple Public Source License. Dalla Apache Software License alla MIT license. Dalla BSD license, alla Artistic license, per un totale di più di 40 licenze diverse.
Il codice deve essere distribuito col il programma o per altre vie. Qualora il codice non venisse distribuito col programma, deve essere specificato come è possibile ottenerlo, preferibilmente ad un costo che non superi quello del supporto di memorizzazione, oppure deve essere possibile scaricarlo via Internet.
La licenza deve permettere che il codice possa essere modificato e redistribuito. Vincola però il codice modificato alla redistribuzione con la stessa licenza del codice originario. Questo per evitare che un programma open source venga modificato e redistribuito con una licenza proprietaria.
Può essere possibile vietare la modifica del codice, se la licenza permette la distribuzione di "patch" che modifichino il comportamento del programma. In questo caso viene garantita l'integrità del codice, così come rilasciato dall'autore, ed allo stesso tempo la possibilità di modificare il comportamento del software in forma compilata.
La licenza non deve fare discriminazioni di alcun tipo per l'uso, la modifica e la distribuzione del programma, verso persone o gruppi particolari.
La licenza non deve vietare l'uso del software in alcuno campo applicativo.
La licenza del software deve coprire anche la distribuzione a terzi, senza l'approvazione di un'altra licenza. Questo per evitare casi come i ""non-disclosure agreement"", nei quali non è possibile rivelare tutte o alcune parti del software.
I diritti garantiti dalla licenza d'uso non devono dipendere dalla particolare distribuzione del prodotto stesso. Estraendo il programma dalla distribuzione, i diritti devono restare invariati. Questo per evitare altre forme di riduzione dei diritti a seguito di particolari distribuzioni del programma.
La licenza non deve porre limiti sul tipo di licenza dell'altro software distribuito col programma in questione. Questo perché deve essere possibile distribuire materiale open-source insieme a materiale con qualunque altro tipo di licenza.
La licenza non deve essere legata ad una determinata tecnologia od interfaccia. Questo per evitare di legarsi a stili tipo "clicca per accettare la licenza", che sarebbe in conflitto con metodi di distribuzione del software come l'ftp.
Per scrivere un software Open Source, non serve studiare tutti questi elementi e creare una nuova licenza. Nella maggior parte dei casi basta dare un'occhiata alle licenze Open Source già esistenti e scegliere quella più adeguata al proprio caso. Nel caso eccezionale in cui si ha bisogno di una nuova licenza, e possibile sottoporre una richiesta alla Open Source Initiative, per una eventuale accettazione tra quelle formalmente riconosciute.