Domanda

Per quanto ne so, quando creo un'app desktop / server usando qualsiasi codice GPL come MySQL dovrò rilasciare il codice sorgente del mio software sotto GPL.

Se voglio sviluppare un'app Web usando MySQL, il mio codice si collegherà alle librerie MySQL. Devo rilasciare il codice sorgente del mio webapp in questa situazione per essere conforme alla GPL?

È stato utile?

Soluzione

Purché tu lo mantenga solo server (e quindi "privato"), non devi rilasciarlo come GPL. Ma non appena raggiunge i desktop pubblici, non può più essere considerato una build interna e quindi è necessario il codice sorgente.

Quindi puoi:

  • Rilascia il tuo codice come GPL
  • Acquista la versione commerciale di MySQL
  • Mantieni solo server.

Altri suggerimenti

Devi rilasciare la fonte (sotto GPL) o pagare una licenza proprietaria a MySQL in modo da ottenere il diritto di distribuire i binari MySQL con una licenza più adatta a quella utilizzata dai prodotti proprietari. Tuttavia, è meglio porre questo tipo di domanda al tuo avvocato.

ETA : solo per chiarire un po '; se scrivi la tua libreria che parla a MySQL usando il suo protocollo wire-line, allora sarai sempre al 100% in chiaro. Allo stesso modo, se usi una libreria che ha fatto proprio questo, ma ha la licenza BSD (come esempio), allora saresti anche in chiaro, perché stai solo parlando con MySQL su una connessione socket e non stai chiamando nel codice GPL'd. Non sono immediatamente a conoscenza di interfacce con licenza BSD per il protocollo MySQL, ma è certamente possibile che ce ne sia una là fuori da qualche parte.

Se si esegue l'applicazione Web da soli e non la si distribuisce come applicazione, non è necessario rilasciare l'origine. Consentire l'accesso a un'applicazione Web non è considerato distribuzione.

Modifica: se interessati, puoi consultare la Affero General Public License , che richiede che la fonte sarà resa disponibile agli utenti della rete del software AGPL (ad es. si applicherebbe alle applicazioni web).

Non devi necessariamente collegarti alle librerie MySQL per usare MySQL nella tua applicazione. Tutto quello che devi fare è "parlare". su un server MySQL utilizzando il protocollo MySQL; nel qual caso, ti stai collegando al server MySQL come client, cioè come utente, e quindi non devi rilasciare il tuo software con la licenza GNU GPL.

La domanda è: come può il tuo programma parlare il protocollo MySQL? Una possibilità è l'utilizzo della libreria client (connettore) MySQL ufficiale, che è GPL'd. Se lo fai, stai collegando staticamente il tuo programma a una libreria GPL e quindi devi rilasciare il tuo software sotto GPL.

In alternativa, puoi collegarti a una libreria client di terze parti, con una licenza diversa. Ad esempio è possibile utilizzare la Libreria client MariaDB , che è LGPL'd (ed è quindi compatibile con software proprietario) e fornisce la stessa API della libreria client MySQL originale. Consulta le FAQ sulle licenze MariaDB , che si applica anche a MySQL, per maggiori dettagli e consigli.

Potrebbe essere complicato distribuire il server MySQL insieme al tuo software: potresti semplicemente richiedere ai tuoi clienti di scaricare e installare MySQL da soli o sviluppare un semplice downloader da distribuire con il tuo software.

MySQL utilizza una doppia licenza. Come dicono - se sei libero, siamo liberi.

Quindi, se usi, per quanto ne so, solo il connettore MySQL JDBC - dovresti avere la licenza o GPL il tuo codice.

A meno che tu non provenga e / o distribuisca il software GPL, dovresti essere al sicuro.

Il collegamento con la libreria client MySQL non è né un lavoro derivato né una distribuzione.

AGGIORNAMENTO: Vieni a pensarci bene, come il collegamento (dinamico o statico) con le librerie farà la differenza. Il collegamento statico è distribuzione, ma se si collega dinamicamente e i client scaricano i connettori stessi, questa non è distribuzione e dovresti essere al sicuro.

Oh, e IANAL.

  

Se voglio sviluppare un'app Web usando MySQL, il mio codice si collegherà alle librerie MySQL. Devo rilasciare il codice sorgente del mio webapp in questa situazione per essere conforme alla GPL?

  1. Come altri hanno già detto, se non stai distribuendo l'app ad altri non c'è alcun problema.

  2. Normalmente, si svilupperebbe rispetto a un'API di database standard e si consentirebbe all'utente di decidere quale database connettersi all'app. In questo caso non ci sono problemi. "Il tuo codice" non si collegherebbe a libmysqlclient, ma potrebbe potenzialmente essere combinato con un modulo di accesso al database che collega a libmysqlclient.

  3. Se si desidera distribuire un programma di installazione che configura insieme l'applicazione e libmysqlclient, probabilmente non verrà considerato come "semplice aggregazione", quindi richiederebbe di distribuire l'app con una licenza open source. Tuttavia, ciò non deve necessariamente essere GPL: consultare Eccezione della licenza MySQL FOSS .

  4. Se si desidera distribuire un programma di installazione che configura l'applicazione e il server MySQL stesso, l'eccezione non si applica, quindi si è limitati alla sola GPL.

Naturalmente IANAL, e c'è sicuramente ancora qualche incertezza su ciò che conta come derivazione, specialmente per quanto riguarda il collegamento dinamico. Tuttavia quanto sopra è la mia comprensione della posizione tradizionale di MySQL AB in materia di licenze e non ho sentito parlare di alcun cambiamento dopo l'acquisizione di Sun.

Sfortunatamente, non è così semplice: la GPL proibisce la distribuzione senza fornire la fonte di ogni "prodotto derivato". La distribuzione è legalmente definita come l'atto di trasferire l'origine da un computer a uno o più computer per uso ufficiale.

Sfortunatamente, che può anche includere l'uso su cluster di server, scatole di QA, scatole di sviluppo, ecc. Nel moderno negozio di sviluppo, il semplice rilascio del codice in più scatole di frontend / backend è tecnicamente distribuzione (in gli occhi della legge).

Non importa cosa pensa la Free Software Foundation, importa cosa pensano alcuni giudici una volta che qualcuno / una società viene citata in giudizio per aver fatto esattamente questo.

Questo è solo un altro motivo per cui i principali clienti della GPL in questi giorni sono aziende che desiderano impedire ai concorrenti di imporre il proprio codice . Tutti gli altri dovrebbero prendere in considerazione licenze molto meno gravose come le licenze MIT o Creative Commons Attribution.

Primo, non sono un avvocato. Parla con uno prima di prendere qualsiasi consiglio qui.

Oltre a ciò, se non distribuisci la tua app web, probabilmente non dovrai rilasciare le modifiche. Puoi comunque rendere la tua app Web disponibile per essere utilizzata da altri se ospiti l'app Web.

Se la tua distribuzione include e installa MySql nello stesso pacchetto, richiede una licenza commerciale.

Ma se distribuisci solo il tuo codice, con un semplice "quot" richiede MySql " avviso e uno script di installazione (per creare / popolare le tabelle), non ci dovrebbero essere problemi, AFAIK.

IANAL, ovviamente.

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