Come funziona la GPL nei confronti di linguaggi come Dart che compilano in altre lingue?

11

La lingua Dart di Google non è supportata da alcun browser Web diverso da una build speciale di Chromium nota come Dartium. Per utilizzare Dart per il codice di produzione devi eseguirlo tramite un compilatore / traduttore Dart- > JavaScript e quindi utilizzare il codice JavaScript in esecuzione nella tua applicazione web.

Poiché JavaScript è un linguaggio interpretato, chiunque abbia ricevuto il "binario" (Aka, il file .js) ha ricevuto anche il codice sorgente.

Ora, la GNU General Public License v3.0 afferma che:

"Il" codice sorgente "per un'opera indica la forma preferita del lavoro per apportare modifiche ad esso."

Il che implicherebbe che il codice Dart originale oltre al codice JavaScript debba essere fornito all'utente finale. Ciò significa che qualsiasi applicazione web scritta in Dart deve anche fornire il codice Dart originale a tutti i visitatori del loro sito Web anche se una copia del codice sorgente è già stata fornita in un formato leggibile / scrivibile / modificabile?

    
posta Peter-W 22.08.2012 - 15:17
fonte

4 risposte

9

Sì, se il codice è sotto GPL e si consegna il codice JavaScript, è necessario fornire anche il codice Dart originale. In genere ciò avviene con un link per scaricare il codice sorgente dal tuo sito ma potresti anche incorporarlo in un commento o qualcosa del genere.

Penso che il modo più semplice per rispettare la GPL in questo caso sia usare l'opzione d per la distribuzione dell'origine

d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.

Fondamentalmente lo fai quando includi il file JS nella tua pagina

<script src="file.js" /><!-- source at http://example.com/path/to/modified/source/file.dart -->
    
risposta data 22.08.2012 - 15:44
fonte
2

Prima di tutto stiamo parlando di GPL, non di AGPL.

Se non distribuisci una GPL l'applicazione, se la esegui su un server, non devi fornire il codice sorgente . C'è AGPL per questo. GPL riguarda la distribuzione.

Da Drupal FAQ:

Do I have to give the code for my web site to anyone who visits it?

No. The GPL does not consider viewing a web site to count as "distributing", so you are not required to share the code running on your server.http://drupal.org/licensing/faq/#q6

Si noti che Drupal è concesso in licenza con licenza GPL e contiene file js (molto).

Da GNU:

The purpose of the GNU Affero GPL is to prevent a problem that affects developers of free programs that are often used on servers.

Suppose you develop and release a free program under the ordinary GNU GPL. If developer D modifies the program and releases it, the GPL requires him to distribute his version under the GPL too. Thus, if you get a copy of his version, you are free to incorporate some or all of his changes into your own version.

But suppose the program is mainly useful on servers. When D modifies the program, he might very likely run it on his own server and never release copies. Then you would never get a copy of the source code of his version, so you would never have the chance to include his changes in your version. You may not like that outcome.

Using the GNU Affero GPL avoids that outcome. If D runs his version on a server that everyone can use, you too can use it. Assuming he has followed the license requirement to let the server's users download the source code of his version, you can do so, and then you can incorporate his changes into your version. (If he hasn't followed it, you have your lawyer complain to him.) Source: http://www.gnu.org/licenses/why-affero-gpl.html

    
risposta data 22.08.2012 - 20:52
fonte
1

In generale, dipende molto dalla licenza. Nel tuo caso, Dart è un cattivo esempio dato che è BSD, e sembra che GNU 3.0 copra il caso di cui stai parlando. Come non avvocato, interpreterei tale citazione come "Il codice generato non è coperto in modo specifico"

Home page Dart Si riferisce a questo: Licenza BSD

Quindi la domanda su GPL è moot

Inoltre: Licenza GNU 3.0

C'è un modo in cui posso GPL l'output che le persone ottengono dall'uso del mio programma? Ad esempio, se il mio programma è utilizzato per sviluppare progetti hardware, posso richiedere che questi disegni siano gratuiti? (#GPLOutput)

In generale questo è legalmente impossibile; la legge sul copyright non ti dice nulla sull'uso del prodotto che le persone producono dai loro dati usando il tuo programma. Se l'utente utilizza il tuo programma per inserire o convertire i propri dati, il copyright sull'output appartiene a lui, non a te. Più in generale, quando un programma traduce il proprio input in qualche altro modulo, > lo stato del copyright dell'output eredita quello dell'input da cui è stato generato.

Quindi l'unico modo in cui puoi dire nell'uso dell'output è se parti sostanziali dell'output vengono copiate (più o meno) dal testo nel tuo programma. Per esempio, parte dell'output di Bison (vedi sopra) verrebbe coperto dalla GNU GPL, se non avessimo fatto un'eccezione in questo caso specifico.

Potresti creare artificialmente un programma per copiare un determinato testo nel suo output anche se non ci sono motivi tecnici per farlo. Ma se quel testo copiato non ha alcuno scopo pratico, l'utente potrebbe semplicemente cancellare del testo dall'output e usare solo il resto. Quindi non dovrebbe obbedire alle condizioni sulla ridistribuzione del testo copiato.

    
risposta data 22.08.2012 - 16:22
fonte
0

La domanda di base è:

L'inclusione di javascript nella pagina web (ad es. referenziamento tramite un tag di script) conta come "Trasmettere" il lavoro di GPLed?

Se lo fa, devi rendere disponibile la fonte nel modulo preferito per modificare il codice, altrimenti no. In questo caso la forma preferita è il codice sorgente Dart originale utilizzato per generare il javascript.

Non riesco a trovare una risposta esplicita a questa domanda sul sito della FSF ma il saggio di Stallman "La trappola Javascript" sembra indicare che lo considera come Conveying e come tale dovresti rendere disponibile il codice sorgente Dart originale. Vedi la sua nota su come consentire versioni minificate che non includono il testo della licenza ma sono ancora coperti dalla licenza.

Consulta anche questa Domande frequenti su javascript e modelli per un'eccezione che consentirebbe ai modelli di utilizzare GPLed javascript senza GPL.

Il modo migliore in assoluto per sapere se ciò che si vuole fare è conforme alla licenza è chiedere al detentore del copyright del codice, perché solo loro hanno il diritto di far valere la licenza. Potrebbero aver interpretato la licenza in modo diverso ed essere disposti ad aggiungere un'eccezione per rendere esplicita la loro interpretazione.

    
risposta data 29.08.2012 - 17:48
fonte

Leggi altre domande sui tag