Il codice JavaScript è utilizzato solo per siti Web, open source?


12

Domanda riscritta:

Non sto facendo una domanda relativa a JavaScript, ma a tutte le lingue "client" utilizzate sul Web (HTML5, JavaScript, CSS e così via). Se inserisco il codice JavaScript (che è GPLed) sul mio sito Web e questo sito Web è accessibile da chiunque sul Web, sto violando la GPL in qualche modo?

Cosa succede se vorrei vendere il codice client (HTML, CSS, JavaScript) a qualcuno? Ho bisogno di una licenza diversa in questo caso?

JavaScript (quando utilizzato per i siti Web) non è sempre open source? Quando apri una pagina web puoi sempre leggere la fonte.

Devo anche rilasciare il mio codice lato server se vendo un sito Web che contiene codice JavaScript GPL?

Cosa succede se questo sito Web è parzialmente accessibile (una parte è gratuita e l'altra richiede il pagamento) ma il codice GPL (la stessa parte) viene utilizzato su entrambi i lati del sito Web?

Cosa succede se il codice GPL è solo in una parte del sito Web che richiede di pagare per accedervi?

Se vendo un sito Web a un cliente in questo modo:

  1. Ti sto vendendo (una tantum) tutto il codice relativo al cliente (JavaScript, HTML e CSS)
  2. Sto Non si vende il codice lato server, si sta affittando (io non voglio farvi riutilizzare il mio codice lato server)

Se sto usando del codice GPL JavaScript, sto violando qualcosa? (Il sito Web è accessibile da chiunque sul Web.)

Modifica 2:

Aggiunta una nuova domanda specifica:

Che cosa succede se il sito Web può funzionare senza il codice lato server, intendo, JavaScript sta solo chiamando alcune pagine PHP che contengono dati in formato JSON. Altre persone possono creare un sito Web con il lato client, ma dovranno fornire dati. In questo caso JavaScript sta chiamando il codice "PHP" (ma non il contrario) credo. In questo caso, sto violando GPL?


4
La possibilità di "vedere" il codice non ha nulla a che fare con le licenze, quindi JavaScript non è diverso da qualsiasi altra cosa. Saresti meglio servito consultando un avvocato esperto in questa specialità.
Sparky

Per il javascript su un sito Web, è qui che stai parlando specificamente del codice GPL? vale a dire, il codice è esplicitamente concesso in licenza ai sensi della GPL?
Filippo,

Bene, non sto vendendo alcun prodotto, lo sto solo chiedendo perché non capisco bene come funzioni. Chiedo in particolare se una lingua correlata al client non è già tutta "GPL" (scarichi la fonte ogni volta che visiti una pagina web)
Fire-Dragon-DoL

In un'applicazione non banale, il tuo codice sorgente non è solo Javascript, è anche il tuo codice lato server. Vuoi rilasciarlo tutto al pubblico? Perché è quello che dice la GPL. Non dice che puoi rilasciarne una parte ed essere comunque conforme alla licenza.
Robert Harvey,

Risposte:


3

Quando si tratta di GPL, l'unità di rilascio è l'unità di licenza.

Se il tuo sito web e il suo javascript sono una cosa sola che funziona insieme, il tutto ha una licenza efficace. Se una parte è GPL, la licenza effettiva dell'intero è GPL. (Questo non è vero per LGPL, MIT, ecc.)

Se si ospita il sito Web e i clienti acquistano l'accesso al servizio, non è stato distribuito o trasmesso il codice lato server, pertanto la GPL è irrilevante. (L'AGPL lo modifica e afferma che il software come servizio deve avere la fonte rilasciata.)

Javascript che fa parte dell'applicazione non viene automaticamente concesso in licenza in alcun modo. A rigor di termini, il download di JavaScript per eseguirlo nel browser è una violazione del copyright. Certo, è sciocco. Probabilmente esiste una licenza implicita per eseguire il codice, ma questo è tutto.

Se si utilizza una libreria Javascript, è necessario rispettare la licenza di tale libreria. Se quella licenza è GPL, la mia comprensione è che ciò significa che l'intera applicazione è GPL. Questo è probabilmente il motivo per cui jQuery ha una doppia licenza: a tua scelta, MIT o GPL. Senza l'opzione di utilizzare la licenza MIT, potrebbe essere utilizzata solo dalle app GPL.


4

Primo: hai il diritto di utilizzare il codice Open Source in progetti commerciali fintanto che aderisci alle restrizioni di licenza (vale a dire principalmente che lasci tutte le attribuzioni in atto e che rendi le modifiche disponibili con una licenza simile).

La GPL è, a quanto ho capito, una delle licenze più restrittive quando si tratta di forzare le proprie licenze su altre parti di un progetto. Non penso che sia mai stato testato in tribunale, ma in genere l'interpretazione che ho sempre visto è che se il codice GPL è lasciato nei suoi moduli separati a cui si fa solo riferimento (ovvero che sono trattati come prodotti completamente autonomi che stai solo usando), dovresti stare bene.

Se non sei sicuro di questo e / o vuoi essere più sicuro, ci sono altre licenze meno prescrittive.

Secondo: la capacità di vedere il codice e i diritti per usarlo sono completamente separati . Non posso andare e togliere JavaScript da qualsiasi sito e usarlo solo perché posso vederlo. Se avessi accesso alla fonte di Windows, anche legalmente, ciò non lo renderebbe mio. Il Web rende necessario che sia visibile molto codice, è ancora possibile concederlo in licenza come desiderato.

Terzo: in termini di licenza per il resto del sito, è altamente improbabile che il tuo cliente sia felice di pagarti per qualcosa che lo rendi open source . A parte il "perché abbiamo pagato qualcosa che hai appena regalato", probabilmente avrà conseguenze per la progettazione e il branding e consentire a qualcun altro di prendere in prestito elementi della sua identità aziendale. Se lo vendi a loro, loro vorranno che sia loro . Se hai intenzione di venderli un po ', anche se devi dire loro che c'è OSS lì dentro perché non puoi venderlo, solo un altro codice che lo utilizza.

Quarto: è un modello molto strano che vende un pezzo del codice e ne affitta l'altro . Sembrano essere così fortemente interdipendenti che uno è in gran parte privo di valore senza l'altro. Suppongo che tecnicamente potrebbero prendere il design del front end che hai fatto e modificarlo in qualcos'altro, ma in genere quando ciò accade le persone ricominciano da capo.

Dato che le due parti non sono davvero così utili l'una senza l'altra, proporrei di pagare per la personalizzazione di un software come prodotto di servizio che possiedi. Cioè possiedi tutto il codice, lo personalizzi secondo le loro specifiche (ovvero il marchio front-end a modo loro). Lo rende molto più ordinato e semplice.


Mhhh ora ho un dubbio: quando creo un sito Web per un cliente, chi è il cliente: la persona a cui vendo il mio sito Web o gli utenti che accederanno ad esso? Se vendo tutto il sito Web come prodotto GPL (con fonti così) al mio cliente, devo rilasciare il codice sorgente anche a tutte le persone che navigano su quel sito?
Fire-Dragon-DoL,

@ Fire-Dragon-DoL - Il cliente è la persona che paga le bollette. Se GPL il tuo codice devi renderlo pubblicamente disponibile a tutti, ovunque , non solo al tuo cliente e / o utente (e tutti hanno il diritto di riutilizzare quel codice).
Jon Hopkins,

Nell'ultima parte (la tua spiegazione è davvero intelligente, grazie): dato che le due parti non sono davvero così utili senza ciascuna delle altre : in questo caso se sto usando il codice GPL dovrei comunque rilasciare i sorgenti? Perché posso leggere la tua frase come "Ti sto vendendo il servizio di personalizzazione del software, non del software stesso che è ancora mio"
Fire-Dragon-DoL

Per rispondere al tuo ultimo commento: non sono sicuro, intendo la GPL dice che devi rilasciare il codice con il tuo software, ma se una persona sta navigando sul mio sito web non gli sto dando il mio programma, sta usando il mio programma , Penso che sia diverso. GPL non dire che deve rilasciare il vostro programma.
Fire-Dragon-DoL,

1
@Jon Devi solo dare la fonte alle persone che hanno ottenuto il binario; non a nessuno che lo chieda. (Certo, ottengono il diritto di dare a chi vogliono, ma non sei obbligato a farlo.)
Sean McMillan,

3

In generale, se si utilizza il codice GPL in qualsiasi parte del progetto e si ridistribuisce il progetto (vale a dire venderlo o darlo ad altri) è necessario rilasciare il codice sorgente del progetto al pubblico nella sua interezza per essere conforme con la licenza GPL.

Se stai fornendo il tuo sito web pubblico come servizio utilizzando il codice GPL lato server, potresti essere OK, poiché questo non è considerato ridistribuzione.

Il codice Javascript nel browser mi sembra un'area grigia. Tecnicamente, stai ridistribuendo il codice GPL al browser di tutti, il che innescerebbe la necessità di rilasciare la tua fonte.

Modifica: per dimostrare il mio punto, includerò ora il testo delle FAQ sulle licenze del sito Web ExtJS. ExtJs è un framework Javascript con licenza GPL. Questa è la loro interpretazione di come funziona la licenza rispetto alla loro struttura (corsivo mio):

Opere derivate
Quando un programma software chiama il codice concesso in licenza in base al GPLv3, quel programma software diventa un'opera derivata del codice GPL e quindi soggetto alla licenza di copyright GPLv3. Se il programma software viene quindi "trasmesso" a un utente, GPLv3 richiede che anche il codice sorgente a quel programma software venga "trasmesso". Il "trasporto" per un'applicazione Web viene attivato quando un utente esterno all'entità legale che ha creato l'applicazione utilizza l'applicazione.

La definizione di un programma
software Per i programmi software creati utilizzando le architetture Web odierne che utilizzano interfacce di servizio remote basate su rete per la comunicazione interna invece del tradizionale collegamento statico o dinamico, il programma software pertinente è la totalità del codice dell'applicazione, incluso il codice eseguito sul server e codice eseguiti sul client, a condizione che il codice server sia parte integrante dell'applicazione.

Esempio
Supponiamo che l'applicazione abbia un front-end (che genera pagine Web collegate a JavaScript Ext JS) che comunica su JSON / HTTP con un servizio back-end. Questo servizio di back-end contiene la logica di approvazione e convalida solo per questa applicazione. Anche se solo il front-end utilizza il codice Ext JS, è necessario considerare che la combinazione di front-end e back-end costituisce l'applicazione e che il codice sorgente sia per il back-end che per il front-end dovrebbe essere fornito agli utenti dell'applicazione in GPLv3 se l'applicazione viene utilizzata da un utente finale che non fa parte della stessa persona giuridica che detiene la licenza GPLv3 per il codice Ext JS.


2
Questo è sbagliato, la GPL non funziona in questo modo. Includere un collegamento a un file JS GPL nell'output del tuo codice PHP non rende in qualche modo open source il tuo codice PHP.
user229044,

@meager: guarda la mia modifica.
Robert Harvey,

Questo sembra del tutto sbagliato. E se il mio back-end fosse diretto a un sito di terze parti che utilizzava file JS di GPL? Devo quindi aprire la mia intera applicazione? Non penso che ciò sarebbe valido in nessun tribunale. Scusa.
Rob,

1

Per un sito Web con JavaScript lato client, possiedono ancora il codice. Se dovessi semplicemente prendere quel codice e usarlo come tuo, probabilmente sarebbe una violazione dell'IP. Immagino di non sapere se non includono una licenza. Ci sono anche problemi di non esecutività. Parla con un avvocato, immagino, ma probabilmente non ti diranno nulla di utile.

I progetti con un mix di licenze sono complicati. Il codice GPL che interagisce con altre librerie, presumibilmente includendo back-end sul lato server, richiede che anche loro siano GPL. Altre licenze open source sono meno rigorose, come la LGPL e la licenza BSD.

E no, se non vuoi che riutilizzi il tuo codice php, questo non si adatta al modello GPL. Se rilasci il tuo codice sotto GPL, allora sei OBBLIGATO a consegnare il codice sorgente.

Quindi sembra che tu stia creando un sito Web per qualcuno e non vuoi distribuire il tuo codice a nessuno. Perché stai guardando open source? Se è open source, stai dando via il codice.


Al momento non vendo nulla, lo sto solo chiedendo perché penso che un sito Web sia composto da 2 parti diverse, il sito Web del client e il sito Web del server. La prima parte è gratuita mentre la seconda parte no. Se un sito Web è "opensource", è necessario rilasciare il codice sorgente sul lato server? Trovo un po 'difficile, creerà disastri sulla sicurezza!
Fire-Dragon-DoL,

2
Questo non è giusto Se una parte di un progetto è GPL, l'intero progetto deve essere rilasciato con una licenza compatibile GPL (supponendo che sia tutto considerato lo stesso programma e non possa essere suddiviso in parti). Ed essendo GPL non ti impedisce di venderlo, significa solo che devi fornire alla fonte qualsiasi binario e non puoi limitare ulteriori ridistribuzioni.
KeithB

Che cosa succede se il sito Web può funzionare senza il codice lato server, intendo, javascript sta semplicemente chiamando alcune pagine php che contengono dati in formato json. Altre persone possono creare un sito Web con il lato client, ma dovranno fornire dati. In questo caso javascript sta chiamando il codice "php" (ma non il contrario) credo. In questo caso, sto violando GPL?
Fire-Dragon-DoL

@KeithB ACK! Hai ragione. Stavo pensando a GTK e SDL, ma quelli sono LGPL. Grazie.
Filippo,

Sì, LPGL è una buona licenza, mi piacerebbe capire GPL a proposito perché ... beh, penso che sia più difficile da capire
Fire-Dragon-DoL
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.