View Full Version : [LGPL] Chiarimenti
Se io faccio un programma che utilizza librerie LGPL, devo rilasciare il sorgente del mio programma sia che sia collegato staticamente che dinamicamente alle librerie ?
Esattamente cosa mi consentono le LGPL in più rispetto alle GPL ?
Se io faccio un programma che utilizza librerie LGPL, devo rilasciare il sorgente del mio programma sia che sia collegato staticamente che dinamicamente alle librerie ?
Sembra che tu lo debba rilasciare solo staticamente, dalla release 3 se non sbaglio.
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
Sembra che tu lo debba rilasciare solo staticamente, dalla release 3 se non sbaglio.
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
Nel link sopra dice che in caso di link statico posso rilasciare anche solo gli object files senza rilasciare il sorgente. Però si riferisce alla 3, a me servirebbe saperlo per la 2
Per la 2 purtroppo non mi ricordo, però mi sembra che si potesse anche linkare staticamente.
http://www.nntp.it/comp-os-linux-development/1587641-faq-di-comp-os-linux-development.html
Mah...questa mi sembra ancora più assurda.
http://www.nntp.it/comp-os-linux-development/1587641-faq-di-comp-os-linux-development.html
Mah...questa mi sembra ancora più assurda.
Non riesco bene a capire cosa voglia dire questo punto:
3) inoltre non si può usare direttamente il meccanismo del
linking dinamico del compilatore ma si devono creare delle funzioni ad
hoc che implementino il caricamento dinamico delle librerie. Per questo
scopo c'è la funzione dlopen, ma quella fornita dalla libreria c della
gnu è sotto licenza lgpl anch'essa e deve quindi essere reimplementata.
In pratica dice che essendo dlopen, la funzione che "apre" a runtime una libreria shared (o dinamica) per poter importare i simboli, una funzione appartenente ad una libreria LGPL, allora per poter importare una libreria shared LGPL bisogna anche riscriversi l'equivalente della dlopen. Questo perché altrimenti si linka dlopen al nostro eseguibile e quindi di fatto includiamo una libreria LGPL in modo statico.
Ovviamente se sei su Windows questo problema non te lo poni perché non utilizzi dlopen, ma CreateLibrary e compagnia.
Sinceramente questa "viralità" della GPL la trovo abbastanza irritante...fosse per me avrei suddiviso in tre licenze, una simil-GPL virale (per proteggere kernel e programmi), una simil-LGPL che permette il linking dinamico e virale in caso di librerie (se rilascio una libreria basata su codice LGPL devo rilasciarla sotto forma di LGPL), una simil-BSD che permette qualsiasi cosa. Ci sono troppi estremisti e idealisti nella FSF.
In pratica dice che essendo dlopen, la funzione che "apre" a runtime una libreria shared (o dinamica) per poter importare i simboli, una funzione appartenente ad una libreria LGPL, allora per poter importare una libreria shared LGPL bisogna anche riscriversi l'equivalente della dlopen. Questo perché altrimenti si linka dlopen al nostro eseguibile e quindi di fatto includiamo una libreria LGPL in modo statico.
Ovviamente se sei su Windows questo problema non te lo poni perché non utilizzi dlopen, ma CreateLibrary e compagnia.
Sinceramente questa "viralità" della GPL la trovo abbastanza irritante...fosse per me avrei suddiviso in tre licenze, una simil-GPL virale (per proteggere kernel e programmi), una simil-LGPL che permette il linking dinamico e virale in caso di librerie (se rilascio una libreria basata su codice LGPL devo rilasciarla sotto forma di LGPL), una simil-BSD che permette qualsiasi cosa. Ci sono troppi estremisti e idealisti nella FSF.
In effetti... Avevo letto che la LGPL era nata per consentire che gli standard open si diffondessero anche nel software proprietario. Ad esempio se usi una libreria per salvare in formato ODF poi è ovvio che il tuo programma ODF supporterà il nuovo formato.
Di fatto mi sembra che il loro utilizzo sia veramente problematico. Oltre al fatto che queste licenze sono scritte in un linguaggio semi-incmprensibile.
Comunque per quello che ho capito (in windows) se creo una DLL separata dal mio programma, ma che include tutte le librerie LGPL, poi devo rilasciare il sorgente solo di quella.
Comunque per quello che ho capito (in windows) se creo una DLL separata dal mio programma, ma che include tutte le librerie LGPL, poi devo rilasciare il sorgente solo di quella.
Sì e a questo punto è la scelta migliore. Sulla tua DLL hai tutti i diritti, quindi la puoi includere tranquillamente nel tuo programma senza violare la LGPL.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.