Devo fornire il codice sorgente per le dipendenze GPL?

3

Supponiamo che esista un software basato su un software con licenza GPL v2. Questo software viene distribuito in forma binaria. GPL richiede che il codice sorgente e le istruzioni di compilazione siano rese disponibili per chiunque. Ma è legale fornire istruzioni che dichiarino qualcosa del genere: "Per compilare devi anche scaricare le librerie X, Y e Z dai loro siti web"?

O tutte le dipendenze devono essere incluse nella distribuzione del codice sorgente?

    
posta Andrej 01.05.2015 - 16:52
fonte

2 risposte

4

La GPL v2 ha questo da dire:

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

Il linguaggio rilevante qui è che devi includere tutti i moduli che il programma richiede tranne quelli per il compilatore o il kernel. Questo è un modo arcaico di dire "non c'è bisogno di distribuire librerie standard che facciano parte di una toolchain di sviluppo standard".

Questo indica che devi trasmettere (almeno rendere disponibile) tutto ciò che è necessario per compilare il codice ad eccezione del compilatore, degli strumenti associati e delle librerie standard.

Per rispondere direttamente alla tua domanda: sì, ti viene richiesto di rendere disponibili librerie di terze parti in modo che chiunque possa scaricare il tuo programma e compilarlo senza dover recuperare librerie da altre fonti.

Nella mia esperienza capita raramente. La mia ipotesi istruita è "non importa a nessuno" perché è così facile andare ad afferrare altre librerie, o potrebbero venire preinstallate in un tipico sistema Linux.

    
risposta data 01.05.2015 - 17:18
fonte
2

Da Una guida pratica alla conformità GPL (enfasi mia):

The most important component to maintaining GPL compliance is inclusion of the complete and corresponding source code in any distributions that you make of GPL’d software.

Ciò significa che includi il codice sorgente per tutte le librerie che usi. Continuano a dire che:

Knowing at all times what sources generated a given binary distribution is paramount. In an unfortunately large number of our enforcement cases, the violating company’s engineering team had difficulty reconstructing the precise sources for a given binary distributed by the company.

Inoltre:

Too many software projects rely on only one or a very few team members who know how to build and assemble the final released product. Such knowledge centralization not only creates engineering redundancy issues, but it also endangers GPL compliance, which requires you to provide build scripts.

Quindi direi che è abbastanza chiaro che l'intento della licenza GPL è di rendere possibile a chiunque di avvalersi delle libertà della licenza (usare, modificare, ridistribuire, ecc.) mentre si incontrano il minor numero di ostacoli pratici.

    
risposta data 01.05.2015 - 17:15
fonte

Leggi altre domande sui tag