Puis-je minimiser le javascript nécessitant une mention de copyright?

37

Je suppose que c'est en fait une question juridique, mais cela concerne les logiciels. Je suis sur le point d'inclure un plugin JS dans un projet. Les commentaires incluent:

  • Les redistributions de code source doivent conserver la notice de copyright ci-dessus, cette liste de conditions et la clause de non-responsabilité suivante. * Les redistributions sous forme binaire doivent reproduire la notice de copyright ci-dessus, cette liste de conditions et la clause de non-responsabilité suivante dans la documentation et / ou dans les autres éléments fournis avec la distribution.
  1. Est-ce que l’utilisation de ceci dans mon site Web est une "redistribution?"
  2. Si je minimise cela pour économiser la bande passante, je suppose que cela supprimera tous les commentaires. Si la réponse à la question 1 est oui, cela ne signifie-t-il pas que je ne suis pas légalement autorisé à la minimiser?

(Cela pue, car je prévoyais de réduire automatiquement tous les JS dans le cadre du processus de déploiement.)

Nathan Long
la source
Est-ce que cela va être côté serveur ou côté client? Le côté client est la distribution, le côté serveur ne l'est pas (en règle générale).
David Thornley
3
@ DavidThornley - Je suis d'accord avec votre point de vue, mais je ne vois pas pourquoi je voudrais de toute façon minimiser le JS côté serveur.
Chris Dolan

Réponses:

34

La plupart des logiciels de minification disposent d'une méthode permettant de laisser un commentaire in situ dans ce but précis.

Par exemple, dans la documentation de YUI Compressor :

  + 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.
     */

Le compilateur Google Closure conservera tout bloc JavaDoc contenant le @licenseou la @preservebalise :

Avec @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.
     */

Avec @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.
     */
Orbite
la source
Oh cool, bon à savoir!
Nathan Long
@Nathan Long: C'est l'approche recommandée par les personnes qui fabriquent les minimiseurs.
Orbling le
23

Oui

Avec une mise en garde. Vous devriez mettre l'avis ailleurs sur le site. Généralement sous une page Termes et conditions ou Avis. Vous pouvez le faire simplement en ajoutant ce qui suit au dessus de chaque morceau JS que vous avez minifié (ou simplement au-dessus du fichier JS unique):

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

En fait, pourquoi ne pas conserver l'avis dans le cadre de l'étape de minification elle-même?

Le moyen le plus simple serait d’extraire d’abord l’avis (manuellement) et de le sauvegarder quelque part. Ensuite, votre script de minification peut simplement réduire le JS, puis concaténer la notification non modifiée.

Je m'attends à ce que ce soit assez petit, bien sûr ... si c'est grand, alors la réponse de Josh K est probablement meilleure.

Matthieu M.
la source
Le problème détecte automatiquement la notification lors de la construction. Un autre point que vous avez évoqué est que les avis peuvent être assez volumineux et coûteux à télécharger à nouveau.
Josh K
@Josh K: J'ai dit extraire manuellement la notice. En ce qui concerne les avis volumineux, je pense que je suis aussi couvert. Dans ce cas, je conviens qu'il est préférable de le séparer.
Matthieu M.
Plus précisément, je pensais au plug-in jQuery Easing. si vous regardez la source, il y a presque la moitié autant de lignes de termes et conditions que de code: gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js Donc, dans ce cas, si je peux Ne supprimez pas l’avis, c’est un gros problème de minification.
Nathan Long
3

D'après ma lecture des licences, je pense que pour être totalement sûr, vous devez inclure le texte complet de la licence avec toute distribution du logiciel ou de ses travaux dérivés (y compris JS minified). Parmi les principales licences open source:

GPLv3:

Vous pouvez transmettre des copies textuelles du code source du programme à mesure que vous le recevez, sur n'importe quel support, à condition de ... remettre à tous les destinataires une copie de la présente licence avec le programme. ...

Vous pouvez transmettre un travail basé sur le Programme ... sous la forme de code source selon les termes de [la section ci-dessus].

Licence MIT:

L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.

Licences BSD:

Les redistributions de code source doivent conserver la notice de copyright ci-dessus, cette liste de conditions et la clause de non-responsabilité suivante.

Il semble que cette approche ne soit pas adoptée par la plupart des gens, cependant. Même le Bootstrap officiel de Twitter ne contient qu'un petit avis de droit d'auteur. Vous violeriez donc la licence du MIT si vous le serviez à vos utilisateurs.

Brian Gordon
la source