Esiste una licenza software GPL compatibile per le librerie che consente il collegamento statico, ma richiede la ridistribuzione del codice sorgente della libreria?

6

Sto cercando una licenza di libreria esistente che soddisfi le seguenti condizioni:

  • GPL-compatibile
  • Può essere collegato in modo statico a programmi closed-source
  • Le modifiche binarie della libreria, inclusi i casi in cui la libreria è collegata staticamente con un altro progetto, devono essere accompagnate dal codice sorgente della libreria

Licenze che sono vicine ma non proprio quello di cui ho bisogno:

*: LGPL consente il collegamento statico con alcune condizioni tecniche specifiche - in particolare, deve essere possibile apportare modifiche o utilizzare versioni più recenti della libreria, e per farlo è necessario rendere disponibili i file oggetto e creare script per i componenti non liberi. In linea generale, ciò è tecnicamente difficile e talvolta impossibile (nel caso, ad esempio, di modelli o funzioni integrate) e molto spesso (come nel mio caso) i motivi alla base dei quali è richiesto il collegamento statico sono in conflitto con questi requisiti LGPL. Per questo motivo, LGPL non è adatto al mio caso d'uso, e francamente non ho ancora visto un progetto che usasse il collegamento statico con una libreria LGPL in questo modo, considerando tutti i problemi tecnici e legali associati (modelli / macros / inlining).

    
posta Vladimir Panteleev 22.08.2011 - 17:56
fonte

5 risposte

3

Dai tuoi commenti, sembra che tu stia cercando un modo per concedere in licenza una libreria che hai scritto in modo da poterlo utilizzare in un progetto proprietario, ma mantenere la licenza GPL-compatibile.

Prima di tutto, questo è un po 'senza senso. La GPL porta con sé un sacco di bagaglio ideologico anti-proprietario. È progettato in questo modo; il punto è quello di rendere il più difficile possibile integrare il codice GPL o LGPL in un progetto proprietario.

Tuttavia, le licenze sono per altre persone. Non si applicano al proprietario del copyright, che sei tu, la persona che ha scritto la biblioteca. Puoi comunque utilizzare il tuo codice personale, a prescindere dai termini della licenza che hai inserito. Quindi puoi renderlo GPL o LGPL e comunque utilizzarlo nel tuo progetto proprietario e starai bene.

D'altra parte, se vuoi che le persone in generale siano in grado di usarlo nei progetti GPL o anche di poterlo usare in progetti proprietari ma ti viene comunque richiesto di pubblicare l'origine su qualunque cambiamento facciano, prova con la doppia licenza come (L) GPL e MPL.

    
risposta data 22.08.2011 - 19:25
fonte
4

LGPL consente il collegamento statico, ma è necessario fornire i requisiti minimi di origine per un utente per creare il lavoro derivato rispetto alla propria versione del lavoro LGPL. Durante il collegamento statico, è necessario distribuire almeno i file oggetto compilati del lavoro closed-source, combinato con qualsiasi script richiesto per eseguire il processo di collegamento.

La sezione LGPL 4.d afferma: fai una delle seguenti azioni:

  • Comunicare la Sorgente Minima Corrispondente ai termini di questa Licenza e il relativo Codice di Applicazione in un formato adatto e, in base alle condizioni che lo consentono, all'utente di ricombinare o ricollegare l'Applicazione con una versione modificata del Linked Versione per produrre una Combined Work modificata, nel modo specificato dalla sezione 6 della GNU GPL per il convogliamento della Sorgente Corrispondente.
  • Utilizzare un meccanismo di libreria condivisa adatto per il collegamento con la libreria. Un meccanismo adatto è quello che (a) utilizza in fase di esecuzione una copia della Libreria già presente sul sistema del computer dell'utente, e (b) funzionerà correttamente con una versione modificata della Libreria che è interfacciabile alla Versione Collegata.

Modifica:

Per i problemi tecnici con funzioni inline, modelli, macro ecc. - la LGPL è un po 'più flessibile qui e ti permette di incorporare il codice dai file di intestazione senza che sia necessario distribuire il lavoro usando queste intestazioni sotto la LGPL - fornito le seguenti condizioni sono soddisfatte.

  • Dare un avviso di spicco ad ogni copia del codice oggetto in cui viene utilizzata la Libreria e che la Libreria e il suo utilizzo sono coperti da questa Licenza.
  • Accompagna il codice oggetto con una copia della GNU GPL e questo documento di licenza.
risposta data 22.08.2011 - 18:19
fonte
3

È possibile utilizzare la propria licenza o semplicemente aggiungere un'eccezione alla LGPL per consentire il collegamento statico, come nella licenza wxWidgets

wxWidgets is currently licensed under the "wxWindows Licence" pending approval of the "wxWidgets Licence" which will be identical apart from the name.

The wxWindows Licence is essentially the L-GPL (Library General Public Licence), with an exception stating that derived works in binary form may be distributed on the user's own terms. This is a solution that satisfies those who wish to produce GPL'ed software using wxWidgets, and also those producing proprietary software.

wxWidgets is Certified Open Source Software Participants in the discussion that led to this decision include the folk from Abisource, Robert Roebling, Julian Smart, Markus Fleck, Karsten Ballueder, and some advice from Richard Stallman. Richard has confirmed that the new licence is compatible with GPL'ed applications. However, there are no significant restrictions on proprietary applications.

The wxWindows Licence has been approved by the Open Source Initiative, and you can find the licence on their site here...

    
risposta data 22.08.2011 - 23:14
fonte
2

La LGPL lo permetterà.

Da Wikipedia , "La principale differenza tra GPL e LGPL è che quest'ultimo consente di collegare il lavoro con (nel caso di una libreria, 'usato da') un programma non- (L) GPLed, indipendentemente dal fatto che si tratti di software libero o software proprietario. 1 Il programma non- (L) GPLed può quindi essere distribuito sotto qualsiasi termine se non è un lavoro derivato."

Eventuali modifiche alla libreria devono essere ridistribuite, ma la libreria stessa può essere utilizzata senza richiedere la distribuzione del programma principale.

    
risposta data 22.08.2011 - 18:03
fonte
1

Apache v2 soddisfa tutte le tue condizioni: Apache License v2.0 e GPL Compatibility

The Free Software Foundation considers the Apache License, Version 2.0 to be a free software license, compatible with version 3 of the GPL. The Software Freedom Law Center provides practical advice for developers about including permissively licensed source.

Apache 2 software can therefore be included in GPLv3 projects, because the GPLv3 license accepts our software into GPLv3 works. However, GPLv3 software cannot be included in Apache projects. The licenses are incompatible in one direction only, and it is a result of ASF's licensing philosophy and the GPLv3 authors' interpretation of copyright law.

This licensing incompatibility applies only when some Apache project software becomes a derivative work of some GPLv3 software, because then the Apache software would have to be distributed under GPLv3. This would be incompatible with ASF's requirement that all Apache software must be distributed under the Apache License 2.0.

We avoid GPLv3 software because merely linking to it is considered by the GPLv3 authors to create a derivative work. We want to honor their license. Unless GPLv3 licensors relax this interpretation of their own license regarding linking, our licensing philosophies are fundamentally incompatible. This is an identical issue for both GPLv2 and GPLv3.

Despite our best efforts, the FSF has never considered the Apache License to be compatible with GPL version 2, citing the patent termination and indemnification provisions as restrictions not present in the older GPL license. The Apache Software Foundation believes that you should always try to obey the constraints expressed by the copyright holder when redistributing their work...

    
risposta data 22.08.2011 - 23:42
fonte

Leggi altre domande sui tag