Si tratta di un'area grigia (attenzione però sono un appassionato di GPL quindi sono di parte); Immagino tu intenda GPLv3 (ma forse git è GPLv2 e quindi i dettagli sono diversi)
GPLv3 è la cosiddetta "licenza virale" ( Non mi piace quell'espressione perché sembra negativa, ma non lo è) o (una formulazione molto migliore) una strong licenza copyleft . ha una FAQ che risponde ad alcune delle tue preoccupazioni. GPL riguarda gratuito -o libre - software ( libertà di parole, non "gratis come nella birra", ovvero gratuito o gratuito)
Non ripeterò le FAQ. Che cosa importa non solo come usi GPL, ma anche in qualche modo i tuoi intenti. Ad esempio, se pubblichi una patch GPLv3 su un programma GPLv3 che è progettato solo per comunicare -utilizzando un protocollo univoco specifico per la tua applicazione! - con un tuo programma particolare, alcune persone credo che il tuo programma dovrebbe essere GPLv3-ed. Se il protocollo è documentato e utilizzato da diverse applicazioni le cose sono diverse.
Quindi il collegamento (con ld
) non è l'unico modo per avere un lavoro derivato (o coperto di lavoro ) dal punto di vista di GPL . Le cose potrebbero essere più complesse.
In definitiva, è una domanda legale (quindi off-topic qui), e in diversi sistemi giuridici deve essere specificamente testato in un tribunale.
BTW, potresti chiedere al tuo avvocato e potresti chiedere alla FSF . Ovviamente, la FSF ha una visione "distorta" (almeno strong e specifica) sul software, ma ha anche esperti nel campo delle licenze e ha alcune liste o forum per discuterne. Ma leggi prima GPLv3 e le sue FAQ.
Il punto è che il tuo utente dovrebbe mantenere la sua libertà di aggiornare (o migliorare ) git
e questo dovrebbe essere facile per lui / lei (quindi renderlo facile è la tua preoccupazione tecnica). Per lo meno, dovresti documentare come il tuo programma sta usando esattamente git
e ovviamente fornire un mezzo per sostituire git
con una versione aggiornata (magari installato altrove e invocato come comando diverso da solo git
, ad esempio $HOME/bin/git-patched-by-basile
, quindi almeno la riga di comando che richiama git
dovrebbe essere in qualche modo configurabile dall'utente in modo documentato, ecc ...).
Se impacchetti git
su alcuni media fisici , assicurati (per cortesia ai tuoi utenti) di comprimere anche il suo codice sorgente. Se stai fornendo un download di rete del tuo software, di nuovo avere la cortesia di dare l'URL a git
e di consigliare qualche versione e spiegare come il tuo utente potrebbe aggiornare / riconfigura git
utilizzato dal tuo programma.
Finalmente, hai pensato di creare un tuo programma con software libero? Questo risolverebbe un sacco di domande (specialmente se ti interessa scegliere una licenza compatibile con la versione GPL usata da git
)
Se lavori per un'azienda, assicurati di informare e chiedere ai tuoi manager / clienti e agli avvocati di fare le cose per bene. Non violare la GPL e renderli consapevoli di eventuali problemi! Non provate nemmeno a interpretare la GPL da soli (ma spiegate cosa avete capito della GPL a manager e avvocati, clienti e qualsiasi stakeholder responsabile). Chiedi all'azienda (possedere il software), ad es. il tuo capo / il tuo cliente / il tuo avvocato . Se possibile prova a spiega al tuo capo perché rendere il tuo codice un software gratuito sotto GPL è meglio per la società . Questo è un lungo viaggio.
Non sono un avvocato e probabilmente non sei né l'uno né l'altro. Ma tu hai delle preoccupazioni etiche, non vuoi fare cose illegali, non vuoi mettere nei guai la tua azienda, quindi non devi nascondere alcun problema potenziale (ad esempio dal tuo manager, se sei un dipendente o da il tuo cliente, se sei un consulente).
Se sei uno sviluppatore alle dipendenze di qualche azienda, non provare nemmeno a risolvere autonomamente i problemi di licenza e chiedi al tuo manager! (I dettagli sono strongmente specifici del sistema legale del tuo paese, del tuo contratto di lavoro, ecc ...) Sicuramente non nasconderti (né dal tuo capo, né dai tuoi utenti) il fatto che il programma stia eseguendo git
e faccia configurabile dall'utente il nome esatto o la riga di comando o il percorso che richiama il programma git