Comprendo che il collegamento a un programma con licenza GPL richiede che rilasci anche la fonte del tuo programma sotto GPL, mentre la LGPL non lo richiede. La terminologia della (L) GPL è molto chiara su questo.
#include "gpl_program.h"
significa che dovresti avere la licenza GPL, perché stai collegando al codice GPL. E
#include "lgpl_program.h"
significa che sei libero di licenziare come preferisci, in modo che non proibisca esplicitamente il collegamento alla fonte LGPL. Ora, la mia domanda su ciò che non è chiaro è:
[begin question]
GCC è concesso in licenza GPL, la compilazione con GCC, non costituisce "integrazione" nel tuo programma, come dice la GPL; l'uso di funzioni incorporate (che sono specifiche di GCC) costituisce "incorporazione" anche se non si è esplicitamente collegato a questo codice di licenza GPL? La mia intuizione mi dice che questa non è l'intenzione, ma la legalità non è sempre intuitiva. Non sono davvero preoccupato, ma sono curioso di sapere se questo potrebbe essere considerato il caso.
[domanda finale]
[inizia da parte]
Il motivo del mio equivoco è che le compilazioni GCC come __builtin_clzl()
o __builtin_expect()
sono un'API tecnicamente e potrebbe essere implementate in un altro modo. Ad esempio, molti builtin sono stati replicati da LLVM e l'argomento potrebbe essere fatto che non è l'implementazione specifica per GCC. Tuttavia, molti builtin non hanno parallelismi e quando compilati collegheranno il codice GPL con licenza in GCC e non verranno compilati su altri compilatori. Se fai qui l'argomento che l'API potrebbe essere replicata da un altro compilatore, non potresti fare quella affermazione identica su qualsiasi programma a cui ti colleghi, a patto che tu non distribuisca quella fonte?
Capisco di essere un serpente legale a riguardo, ma mi sembra strano che la GPL non sia più specifica. Non vedo questo come uno stratagemma ragionevole per i creatori di software proprietari per aggirare la GPL, in quanto dovrebbero raggruppare il software GPL per farlo funzionare, rimuovendo la loro negabilità plausibile. Tuttavia, non è possibile che se i builtin non costituiscono un collegamento, i sostenitori dell'open source che si oppongono alla GPL potrebbero semplicemente scrivere un prodotto con licenza BSD / MIT / Apache / Apple che si collega a un programma GPL e affermano che intendono scrivere un'interfaccia non GPL identica a quella GPL, preservando la loro licenza BSD fino a quando non viene effettivamente compilata?
[fine a parte]
Scusate per il lato, non pensavo che molte persone avrebbero seguito il motivo per cui mi importa di questo se non dovessi affrontare problemi legali o implicazioni. Non preoccuparti troppo dell'ipotetico, sto solo estrapolando ciò che una risposta alla mia domanda potrebbe implicare.