Utilizzo di C ++ / Java per sviluppare software per scopi commerciali

9

Ho intenzione di sviluppare un programma che intendo vendere più tardi. Sto cercando di decidere su un linguaggio per codificarlo, e ho ristretto a C ++ o Java.

Ho usato le licenze GPL v2 e v3 usate per GNU GCC e OpenJDK (sì, posso capire un po 'di cose legali, ma chiaramente, non tutte). Ma c'è un punto in cui Everyone è oscuro (questa dovrebbe essere stata una delle prime risposte, IMO): se sviluppo un programma usando C ++ / Java e lo compilo usando il compilatore GCC o il compilatore di OpenJDK , posso venderlo senza dover inserire il mio programma anche in GPL?

Per quanto posso capire, ho pieno diritto di assegnare qualsiasi licenza al mio programma, ma c'è un problema: nella licenza si dice che non dovrei collegarmi a nessuna libreria che è in GPL. Se è così, dovrò rilasciare il mio programma sotto GPL.

Ora, non so cosa sia in C ++ / Java una libreria, quindi se uso le cose normali in C ++ (iostream, list, map, ecc.) o le normali classi / interfacce Java disponibili come parte di la distribuzione standard di JDK 6 (String, List, Map, ecc.), ciò costituisce un "collegamento alle librerie"?

    
posta gnat 16.04.2011 - 21:15
fonte

5 risposte

13

if I develop a program using C++/Java and compile it using GCC compiler or OpenJDK's compiler, can I sell it without having to place my program under GPL as well?

Sì. La GPL esclude specificamente l'output dell'esecuzione del programma:

the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program).

che significa che se includi bit di GCC o qualcos'altro GPL nel tuo programma, allora sì dovrebbe essere GPL, altrimenti no - il fatto che il suo codice oggetto sia stato prodotto da un compilatore GPL non è rilevante se dovrebbe essere GPL.

Tutte le librerie di lingue standard a cui ci si collega non sono GPL o GPL ma hanno un'eccezione speciale per consentire al software proprietario di collegarsi a loro, se non li si modifica . Nel caso di C ++ intendo libgcc, glibc e libstdc ++; nel caso di Java intendo tutte le librerie incluse in JRE.

Tecnicamente, puoi vendere legalmente software GPL in ogni caso, ma quasi nessuno fa soldi per farlo.

    
risposta data 16.04.2011 - 21:29
fonte
8

Sia GCC che OpenJDK hanno eccezioni esplicite:

… When you use GCC to compile a program, GCC may combine portions of certain GCC header files and runtime libraries with the compiled program. The purpose of this Exception is to allow compilation of non-GPL (including proprietary) programs to use, in this way, the header files and runtime libraries covered by this Exception. …

… When GNU Classpath is used unmodified as the core class library for a virtual machine, compiler for the java languge, or for a program written in the java programming language it does not affect the licensing for distributing those programs directly …

    
risposta data 18.04.2011 - 17:26
fonte
2

Non è oscuro. Esiste una eccezione alla licenza che si applica qui. Questo è reperibile dalla domanda appropriata nelle Domande frequenti sulla GPL .

In breve, ciò che vuoi fare è permesso.

    
risposta data 18.04.2011 - 18:35
fonte
0

L'OpenJDK è GPL ma con un'eccezione per il collegamento alle librerie. link

Usare le classi OpenJDK costituirebbe il collegamento a una libreria che penserei (rt.jar).

Una libreria in questo contesto, dal punto di vista di Java, è sicuramente un barattolo di dipendenza, una guerra, una classe, ecc. Comunque, sono sicuro che puoi legalmente vendere un'app Java - ce ne sono più che pochi là fuori che Oracle / Sun non ha intrapreso azioni legali.

    
risposta data 16.04.2011 - 21:18
fonte
0

Non preoccuparti, questa è una domanda di programmazione per computer o almeno una che riguarda da vicino i programmatori.

Da quello che so, se crei software collegato a un codice GPL, devi rilasciare il codice sorgente se distribuisci il tuo programma.

Ciò non significa che devi rilasciare il tuo codice a sourceforge, ma se una terza parte ti chiede il codice, devi fornirlo.

    
risposta data 16.04.2011 - 21:22
fonte

Leggi altre domande sui tag