Chiama il software GPL da software non GPL

27

Posso (legalmente) utilizzare un programma rilasciato sotto licenza GPL da un altro programma che sto scrivendo e non dover rispettare la GPL (per il programma che sto scrivendo)?

Ad esempio, ho una GUI che usa un programma (che è sotto GPL), posso nascondere il codice nella GUI e persino venderlo?

    
posta Valmond 24.09.2011 - 10:21
fonte

4 risposte

26

Puoi utilizzare un programma GPL dal tuo programma senza che il tuo programma sia influenzato dalla GPL, ma non puoi collegare il codice GPL al tuo programma senza che il tuo programma sia soggetto ai termini della GPL.

Nell'esempio fornito nella domanda, in cui è stato scritto un wrapper della GUI attorno a un programma della riga di comando esistente, la GUI non è vincolata dai termini della GPL, a condizione che si tratti di un programma separato che esegue GPLed programma in un processo separato e comunica con esso solo tramite l'interfaccia esistente (s) - ad esempio, sulla riga di comando e / o tramite stdin / stdout.

Alcuni bit pertinenti delle domande frequenti sulla GPL :

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

Can I release a non-free program that's designed to load a GPL-covered plug-in?

It depends on how the program invokes its plug-ins. For instance, if the program uses only simple fork and exec to invoke and communicate with plug-ins, then the plug-ins are separate programs, so the license of the plug-in makes no requirements about the main program.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.

If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

Si noti che la GPL si applica in toto al programma della riga di comando sottostante in ogni caso - se lo si distribuisce (a differenza che gli utenti lo ottengono da un'altra fonte), si è responsabili di fornire una copia della GPL agli utenti , rendendo chiaro a loro che il programma della riga di comando è sotto GPL (anche se il wrapper della GUI non lo è), e rendendo disponibile il codice sorgente del programma della riga di comando su richiesta. Di nuovo dalle FAQ GPL:

If people were to distribute GPL-covered software calling it “part of” a system that users know is partly proprietary, users might be uncertain of their rights regarding the GPL-covered software. But if they know that what they have received is a free program plus another program, side by side, their rights will be clear.

Disclaimer standard: non sono un avvocato e, anche se fossi un avvocato, non sono il tuo avvocato. Se hai bisogno di una risposta definitiva, consulta un professionista legale appropriato che è autorizzato a esercitare nella tua giurisdizione.

    
risposta data 24.09.2011 - 15:47
fonte
0

Dipende da cosa intendi usarlo?

  • compila nel tuo codice
  • usa una libreria condivisa
  • esegui un eseguibile

Dipende anche da quale versione / variante della GPL è presente l'altro codice.

  • GPL
  • LGPL
  • AGPL
  • Probabilmente altri

Disclaimer legale: non sono un avvocato.

    
risposta data 24.09.2011 - 12:54
fonte
-1

Dipende da quanto esattamente il tuo programma sta "usando" il programma GPL. Le FAQ GPL hanno una spiegazione piuttosto lunga , ma lascia comunque molto spazio all'interpretazione:

You cannot incorporate GPL-covered software in a proprietary system. (...) However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program. (...) if the two programs are combined so that they become effectively two parts of one program, then you can't treat them as two separate programs. So the GPL has to cover the whole thing. If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs—but you have to do it properly. The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection.

Penso che nel tuo esempio di una GUI che esiste principalmente per chiamare un programma GPL a riga di comando, i due formano chiaramente un singolo programma, quindi dovresti rilasciare il tuo codice sotto la GPL.

    
risposta data 24.09.2011 - 12:56
fonte
-4

No.

Il codice GPL può essere utilizzato solo da un altro codice GPL.

Citando la prima riga dell'articolo GPL di wikipedia:

The GPL is the first copyleft license for general use, which means that derived works can only be distributed under the same license terms.

A parte ciò, la GPL ha diverse pagine e esiste in diverse versioni.

Avviso, personale in attesa!

Personalmente non amo molto la licenza GPL a causa della sua natura molto restrittiva e simile ai virus. Lo chiamano "gratis", ma in realtà è esattamente l'opposto, il codice GPL non può essere usato da niente tranne che da altri codici GPL. Quindi forzare altri progetti in GPL o essere costretti a riscrivere intere librerie, indipendentemente dal fatto che il tuo progetto attuale sia open source o meno. Ci sono stati enormi progetti open source, come ad esempio freeBSD, che sono stati costretti a riscrivere centinaia di migliaia di linee di codice linux perché la loro licenza era incompatibile, era troppo "libera" nel senso "fai quello che vuoi", che è ovviamente non compatibile con GPL.

Se vuoi una licenza veramente "libera" nel senso che "fai quello che vuoi", raccomando la licenza BSD o MIT ... in realtà, la maggior parte delle altre licenze sono OK. È solo GPL che è davvero problematico perché è restrittivo e in che modo costringe gli altri a farlo. Infine, è eccessivamente complicato.

Ah, sì, è anche un biglietto di sola andata. GPL può usare codice / librerie concessi in licenza dalla maggior parte delle licenze, ma queste librerie / codice non possono usare a loro volta il codice GPL.

    
risposta data 24.09.2011 - 10:39
fonte

Leggi altre domande sui tag