Non sto cercando o ho bisogno di consulenza legale, ma mi è venuto in mente un esperimento interessante.
Immagina il seguente situtation (non riesco a pensare ad un esempio concreto e non sono sicuro che esista una manifestazione reale): c'è una licenza libera (libre) api sotto qualche licenza permissiva o addirittura LGPL. L'applicazione B non libera implementa questa API per ordinare i plugin host, ma ci sono altri software liberi che fanno la stessa cosa. Inoltre, c'è plugin C che agisce come un plugin sotto api A. Collega alla libreria D, che è sotto GPL, quindi C è anche in GPL. I plugin che utilizzano A vengono caricati negli host tramite un meccanismo dlopen
-like e utilizzano una struttura dati complessa per la comunicazione con host-plugin. Né B né C distribuiscono alcun file che possa essere richiesto per A per funzionare correttamente (come intestazioni contenenti le definizioni di struttura di A o librerie dinamiche contenenti funzioni di supporto per A scritte dagli autori di A), ma tali cose possono esistere.
Ora alcuni utenti installano l'applicazione B e il plug-in C sulla sua macchina, insieme a tutto ciò che potrebbe essere necessario affinché l'API A funzioni correttamente. Quindi procede e carica C in B e crea una proprietà intellettuale con B che non è un software.
Una violazione della GPL è avvenuta ad un certo punto e, in tal caso, chi ha violato la GPL e perché?
- Gli autori di C violano la licenza di s rendendo possibile l'utilizzo di C nell'host B non libero? Questa è una possibilità perché non possono dare ed eccezione a GPL (come quella descritta nel link o link ) a causa dei termini di licenza di D's.
- Gli autori di B violano la licenza di C e D's rendendo possibile il caricamento di C in B? Questa è una possibilità perché il link non consente i meccanismi A usati per la comunicazione tra il libero e il non libero moduli.
- Gli autori di A, perché l'api può essere usata (e in questo caso, è stata usata) per la comunicazione tra GPL'd e software non libero. Questo sarebbe estremamente assurdo.
- L'utente, poiché al momento del caricamento di B in C, ha realizzato un'opera derivata di C. Penso che ciò sia impossibile, perché non lo distribuisce. Ma se la situazione dovesse cambiare, ha deciso di rilasciare un file di configurazione di B che rende B carico C come plugin?
- Nessuno, perché A conta come una "libreria di sistema", e sia B che C interagiscono direttamente solo con A, non con gli altri. In un mondo sano, questo succederebbe ...
Un esempio concreto di A potrebbe essere un qualche tipo di audio (pensa LADSPA) o api di elaborazione delle immagini. Tuttavia, non ho trovato alcuna interfaccia di questo tipo (che sia software libero, generico e sia implementato anche da strumenti commerciali). Un esempio del mondo reale potrebbe anche essere abbastanza illuminante.