Posso minimizzare Javascript che richiede un avviso sul copyright?


37

Immagino che questa sia in realtà una domanda legale, ma si riferisce al software. Sto per includere un plugin JS in un progetto. I commenti includono:

  • Le ridistribuzioni del codice sorgente devono conservare la suddetta nota sul copyright, questo elenco di condizioni e la seguente dichiarazione di non responsabilità. * Le ridistribuzioni in forma binaria devono riprodurre la suddetta nota sul copyright, questo elenco di condizioni e la seguente dichiarazione di non responsabilità nella documentazione e / o altri materiali forniti con la distribuzione.
  1. Lo sta usando nel mio sito web "ridistribuzione?"
  2. Se minimizzo questo per preservare la larghezza di banda, presumo che eliminerà tutti i commenti. Se la risposta al n. 1 è sì, ciò non implica che non sia legalmente autorizzato a minimizzarlo?

(Sarebbe puzzolente, poiché avevo intenzione di minimizzare automaticamente tutti i JS come parte del processo di distribuzione.)


Sarà sul lato server o lato client? Il lato client è la distribuzione, il lato server no (come regola generale).
David Thornley,

3
@DavidThornley - Sono d'accordo con il tuo punto, ma non riesco a pensare a una buona ragione per cui dovresti minimizzare JS lato server.
Chris Dolan,

Risposte:


34

La maggior parte dei software di minimizzazione ha un metodo per lasciare un commento in situ per questo preciso scopo.

Ad esempio, dalla documentazione del compressore YUI :

  + C-style comments starting with /*! are preserved. This is useful with
    comments containing copyright/license information. For example:

    /*!
     * TERMS OF USE - EASING EQUATIONS
     * Open source under the BSD License.
     * Copyright 2001 Robert Penner All rights reserved.
     */

    becomes:

    /*
     * TERMS OF USE - EASING EQUATIONS
     * Open source under the BSD License.
     * Copyright 2001 Robert Penner All rights reserved.
     */

Google Closure Compiler conserverà qualsiasi blocco JavaDoc che contiene @licenseil @preservetag o il tag :

Con @license:

    /* 
     * TERMS OF USE - EASING EQUATIONS
     * @license Open source under the BSD License.
     * Copyright 2001 Robert Penner All rights reserved.
     */

    becomes:

    /* 
      TERMS OF USE - EASING EQUATIONS
      Open source under the BSD License.
      Copyright 2001 Robert Penner All rights reserved.
     */

Con @preserve:

    /* @preserve
     * TERMS OF USE - EASING EQUATIONS
     * Open source under the BSD License.
     * Copyright 2001 Robert Penner All rights reserved.
     */

    becomes:

    /* 
      TERMS OF USE - EASING EQUATIONS
      Open source under the BSD License.
      Copyright 2001 Robert Penner All rights reserved.
     */

Oh bello, bello da sapere!
Nathan Long,

@Nathan Long: questo è l'approccio consigliato dalle persone che realizzano i minimizzatori.
Orbling

23

Con un avvertimento. Dovresti mettere l'avviso altrove sul sito. In genere in una pagina Termini e condizioni o Avvisi. Puoi farlo semplicemente aggiungendo quanto segue all'inizio di ogni pezzo JS che hai minimizzato (o semplicemente in cima al singolo file JS):

/** Notice 
  *
  * This file contains works from many authors under various (but compatible)
  * licenses. Please visit http://example.com/notices for more information.
  *
 **/

4

In realtà, perché non conservare l'avviso come parte della fase di minificazione stessa?

Il modo più semplice sarebbe innanzitutto estrarre l'avviso (manualmente) e salvarlo da qualche parte. Quindi il tuo script di minificazione può solo minimizzare JS e quindi concatenare l'avviso inalterato.

Mi aspetto che sia abbastanza piccolo ovviamente ... se è grande, allora la risposta di Josh K è probabilmente migliore.


Il problema diventa automaticamente il rilevamento dell'avviso durante la costruzione. Un altro punto che hai toccato è che gli avvisi possono essere piuttosto grandi e costosi da scaricare nuovamente.
Josh K,

@Josh K: l'ho detto manualmente estraendo l'avviso. Per quanto riguarda le comunicazioni di grandi dimensioni, penso di averne coperto anche quello, nel qual caso concordo che è meglio separarlo.
Matthieu M.

In particolare, stavo pensando al plugin jQuery Easing. se guardi la fonte, ci sono quasi la metà del numero di righe di termini e condizioni del codice: gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js Quindi, in questo caso, se posso ' t rimuovere l'avviso, questo è un grosso problema per la minimizzazione.
Nathan Long,

3

Dalla mia lettura delle licenze, credo che, per essere totalmente sicuro, sia necessario includere il testo completo della licenza con qualsiasi distribuzione del software o delle sue opere derivate (incluso JS minimizzato). Dalle principali licenze open source:

GPLv3:

Puoi trasmettere copie testuali del codice sorgente del Programma quando lo ricevi, su qualsiasi supporto, a condizione che tu ... dia a tutti i destinatari una copia di questa Licenza insieme al Programma. ...

Puoi trasmettere un lavoro basato sul Programma ... sotto forma di codice sorgente secondo i termini di [la sezione precedente].

Licenza MIT:

L'avviso di copyright di cui sopra e questo avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

Licenze BSD:

Le ridistribuzioni del codice sorgente devono conservare la suddetta nota sul copyright, questo elenco di condizioni e la seguente dichiarazione di non responsabilità.

Tuttavia, sembra che questo approccio non venga adottato dalla maggior parte delle persone. Anche il Bootstrap minimizzato ufficiale da Twitter contiene solo una piccola nota sul copyright, quindi violeresti la licenza MIT se la servissi ai tuoi utenti.

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.