Domanda

Non so molto su LGPL/GPL quando si tratta di distribuire programmi (senza una licenza QT); Se avessi realizzato un programma, potrei collegare staticamente le librerie all'EXE, quindi ho un singolo file da distribuire quando:

  • Il programma non costa nulla, è solo distribuito (fonte chiusa o open source)?

  • Quando devi pagare per il programma, puoi ancora collegare staticamente?

È stato utile?

Soluzione

No, se il tuo programma è chiuso e si desidera collegare contro la versione LGPL di QT è necessario utilizzare il collegamento dinamico. Se si desidera collegare staticamente, è necessario acquistare una licenza per Qt.

Per utilizzare il codice LGPL nel progetto di origine chiusa, l'utente deve essere in grado di sostituire la parte LGPL del codice. Il più semplice e di gran lunga il modo più comune per farlo è mettere tutto il codice LGPL in una DLL e quindi l'utente può sostituire la DLL se lo desidera.

È inoltre autorizzato a utilizzare qualunque sia il significato tecnico che la tua lingua consente di raggiungere lo stesso obiettivo. È possibile distribuire file di oggetti e quindi l'utente può trasferirsi come ha sottolineato un altro commentatore, ma non l'ho mai visto fatto in pratica.

Non importa se il tuo prodotto sia gratuito o paga. Puoi vendere prodotti GPL/LGPL.

Altri suggerimenti

In realtà, l'LGPL consente il collegamento statico fintanto che soddisfi alcuni requisiti molto specifici. Ad esempio, se tutta la distribuzione viene eseguita dal tuo sito Web dove hai Staticprogram.exe, stai bene finché gli utenti potrebbero anche scaricare Staticprogram.obj e LGPL-Library-source.tar.gz. Potresti anche distribuire Staticprogram.exe con un'offerta scritta per fornire gli altri file.

In particolare, il collegamento statico crea un singolo eseguibile che è un derivato del codice LGPL, quindi è necessario rispettare la sezione 6 dell'LGPL:

6) Come eccezione alle sezioni sopra, è anche possibile combinare o collegare un "lavoro che utilizza la libreria" con la libreria per produrre un'opera contenente parti della libreria e distribuire tale lavoro in termini di scelta, a condizione che il I termini consentono la modifica del lavoro per l'utilizzo del cliente e il reverse ingegneria per il debug di tali modifiche.

È necessario comunicare importanti con ogni copia dell'opera che la biblioteca viene utilizzata in essa e che la biblioteca e il suo utilizzo sono coperti da questa licenza. È necessario fornire una copia di questa licenza. Se il lavoro durante l'esecuzione visualizza gli avvisi di copyright, è necessario includere l'avviso di copyright per la biblioteca, nonché un riferimento che indirizza l'utente alla copia di questa licenza. Inoltre, devi fare una di queste cose:

a) Accompagnare il lavoro con il codice sorgente leggibile da macchina corrispondente completo per la libreria, incluso qualsiasi modifica utilizzata nel lavoro (che deve essere distribuito nelle sezioni 1 e 2 sopra); e, se il lavoro è un eseguibile collegato con la libreria, con il "lavoro leggibile per la macchina completa che utilizza la libreria", come codice oggetto e/o codice sorgente, in modo che l'utente possa modificare la libreria e quindi trasferirsi per produrre un eseguibile modificato contenente la libreria modificata. (Resta inteso che l'utente che modifica il contenuto dei file delle definizioni nella libreria non sarà necessariamente in grado di ricompilare l'applicazione per utilizzare le definizioni modificate.)

b) Utilizzare un meccanismo di biblioteca condiviso adatto per il collegamento con la libreria. Un meccanismo adatto è quello che (1) utilizza in fase di esecuzione una copia della libreria già presente sul sistema informatico dell'utente, piuttosto che copiare le funzioni della libreria nell'eseguibile e (2) funzionerà correttamente con una versione modificata della libreria, Se l'utente installa uno, purché la versione modificata sia compatibile con l'interfaccia con la versione con cui il lavoro è stato svolto.

c) Accompagnare il lavoro con un'offerta scritta, valida per almeno tre anni, per dare allo stesso utente i materiali specificati nella sottosezione 6a, sopra, per un addebito non più del costo dell'esecuzione di questa distribuzione.

d) Se viene effettuata la distribuzione del lavoro offrendo l'accesso alla copia da un luogo designato, offrire un accesso equivalente a copiare i materiali sopra specificati dallo stesso luogo. e) Verificare che l'utente abbia già ricevuto una copia di questi materiali o che tu abbia già inviato a questo utente una copia.

Per un eseguibile, la forma richiesta del "lavoro che utilizza la libreria" deve includere eventuali programmi di dati e utilità necessari per riprodurre l'eseguibile da esso. Tuttavia, come eccezione speciale, i materiali da distribuire non devono includere nulla che sia normalmente distribuito (in forma di origine o binaria) con i componenti principali (compilatore, kernel e così via) del sistema operativo su cui esegue l'eseguibile , a meno che quel componente stesso accompagna l'eseguibile.

Può succedere che questo requisito contraddica le restrizioni di licenza di altre librerie proprietarie che normalmente non accompagnano il sistema operativo. Tale contraddizione significa che non è possibile utilizzare sia loro che la libreria in un eseguibile che si distribuisce.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top