Licenze #

Matplotlib utilizza solo codice compatibile con BSD. Se introduci codice da un altro progetto, assicurati che abbia una licenza PSF, BSD, MIT o compatibile (vedi la pagina delle licenze di Open Source Initiative per i dettagli sulle singole licenze). In caso contrario, potresti prendere in considerazione l'idea di contattare l'autore e chiedere loro di concedere nuovamente la licenza. Il codice GPL e LGPL non è accettabile nella base di codice principale, anche se stiamo considerando un modo alternativo di distribuire il codice L/GPL attraverso un canale separato, possibilmente un toolkit. Se includi il codice, assicurati di includere una copia della licenza di quel codice nella directory delle licenze se la licenza del codice richiede di distribuire la licenza con esso. Le licenze non compatibili con BSD sono accettabili nei toolkit Matplotlib (ad esempio, basemap), ma assicurati di indicare chiaramente le licenze che stai utilizzando.

Perché compatibile con BSD? #

Le due varianti di licenza dominanti in natura sono in stile GPL e in stile BSD. Ci sono innumerevoli altre licenze che impongono restrizioni specifiche al riutilizzo del codice, ma c'è un'importante differenza da considerare nelle varianti GPL e BSD. La licenza più conosciuta e forse più utilizzata è la GPL, che oltre a concedere pieni diritti sul codice sorgente inclusa la ridistribuzione, comporta un ulteriore obbligo. Se usi il codice GPL nel tuo codice o ti colleghi ad esso, il tuo prodotto deve essere rilasciato con una licenza compatibile con GPL. cioè, sei tenuto a dare il codice sorgente ad altre persone e dare loro anche il diritto di ridistribuirlo. Molti dei progetti open source più famosi e ampiamente utilizzati sono rilasciati sotto GPL, inclusi linux, gcc, emacs e sage.

La seconda classe principale sono le licenze in stile BSD (che include il MIT e la licenza PSF di Python). Questi in pratica ti consentono di fare quello che vuoi con il codice: ignoralo, includilo nel tuo progetto open source, includilo nel tuo prodotto proprietario, vendilo, qualunque cosa. python stesso è rilasciato con una licenza compatibile con BSD, nel senso che, citando dalla pagina della licenza PSF:

There is no GPL-like "copyleft" restriction. Distributing
binary-only versions of Python, modified or not, is allowed. There
is no requirement to release any of your source code. You can also
write extension modules for Python and provide them only in binary
form.

Progetti famosi rilasciati con una licenza in stile BSD nel senso permissivo dell'ultimo paragrafo sono il sistema operativo BSD, Python e TeX.

Ci sono diversi motivi per cui i primi sviluppatori di Matplotlib hanno selezionato una licenza compatibile con BSD. Matplotlib è un'estensione Python e scegliamo una licenza basata sulla licenza Python (compatibile con BSD). Inoltre, volevamo attirare il maggior numero possibile di utenti e sviluppatori e molte società di software non utilizzeranno il codice GPL nel software che intendono distribuire, anche quelle che sono fortemente impegnate nello sviluppo open source, come enthought, per la legittima preoccupazione che l'uso della GPL possa "infettare" il loro codice base per la sua natura virale. In effetti, vogliono mantenere il diritto di rilasciare del codice proprietario. Le aziende e le istituzioni che utilizzano Matplotlib spesso danno contributi significativi, perché hanno le risorse per portare a termine un lavoro, anche noioso. Due dei backend Matplotlib (FLTK e WX) sono stati forniti da società private. L'ultimo motivo alla base della scelta della licenza è la compatibilità con le altre estensioni Python per il calcolo scientifico: ipython, numpy, scipy, la suite di strumenti enthought e lo stesso python sono tutti distribuiti con licenze compatibili con BSD.