Distribuzione di software con licenza GPL che opzionalmente collega a librerie con licenza non GPL

1

Posso trovare molte informazioni relative alle restrizioni imposte sul collegamento di librerie con licenza GPL da software con licenza non GPL. Tuttavia, mi piacerebbe fare il contrario - mi piacerebbe distribuire alcuni software con una licenza GPLv3 che ha la possibilità di collegarsi dinamicamente ad una libreria condivisa proprietaria.

La libreria proprietaria non costituirebbe un componente essenziale del software funzionante, dal momento che esistono altre librerie open source (con licenza BSD) che potrebbero essere collegate in fase di esecuzione (in particolare, sto pensando di collegare MKL BLAS contro ATLAS, OpenBLAS ecc.).

Ho trovato questa sezione pertinente nelle Domande frequenti sulla GPL.

  • Ciò significa che dovrei concedere esplicitamente un'eccezione per ogni possibile libreria condivisa con licenza non GPL che l'utente potrebbe scegliere di collegare in fase di esecuzione?
  • Avrei bisogno di scrivere eccezioni per le librerie che sono open source, ma non con licenza GPL (ad esempio BSD)?
  • Se la libreria a cui è collegato non è coperta da un'eccezione (ad esempio se è GPL o LGPL), quale sarebbe il mio obbligo di distribuire il codice sorgente per quella libreria?
posta ali_m 09.08.2014 - 16:13
fonte

1 risposta

1

Poiché BLAS è effettivamente un'API con implementazioni multiple (sia gratuite che non), è possibile che rientri nella definizione GPL di "Interfaccia standard". In tal caso, i requisiti GPL non si estendono alla libreria BLAS che si distribuisce con l'applicazione.
Potrebbe valere la pena chiedere alla FSF se ritengono che l'API BLAS rientri in tale definizione.

Se questa rotta non funziona, puoi dare il permesso esplicito di utilizzare una particolare libreria (o una serie di librerie) come indicato dalla sezione Domande frequenti sulla GPL a cui sei collegato:

[...] If you're using GPLv3, you can accomplish this goal by granting an additional permission under section 7. The following license notice will do that. You must replace all the text in brackets with text that is appropriate for your program. If not everybody can distribute source for the libraries you intend to link with, you should remove the text in braces; otherwise, just remove the braces themselves.

Copyright (C) [years] [name of copyright holder]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/licenses.

Additional permission under GNU GPL version 3 section 7

If you modify this Program, or any covered work, by linking or combining it with [name of library] (or a modified version of that library), containing parts covered by the terms of [name of library's license], the licensors of this Program grant you additional permission to convey the resulting work. {Corresponding Source for a non-source form of such a combination shall include the source code for the parts of [name of library] used as well as that of the covered work.}

Questa autorizzazione esplicita è necessaria solo per le librerie la cui licenza è altrimenti incompatibile con la GPL. Le librerie concesse in licenza con licenza permissiva, come BSD o MIT, sono compatibili con i programmi GPL, quindi non è necessario esonerarli.

Se il tuo programma è collegato a una biblioteca che ha una licenza incompatibile e non è esente, non ti è consentito distribuire tale combinazione. Né nella fonte, né nella forma binaria.

    
risposta data 09.08.2014 - 17:03
fonte

Leggi altre domande sui tag