Kann ich Javascript minimieren, für das ein Urheberrechtsvermerk erforderlich ist?

36

Ich denke, das ist eigentlich eine rechtliche Frage, aber es bezieht sich auf Software. Ich bin dabei, ein JS-Plugin in ein Projekt aufzunehmen. Die Kommentare umfassen:

  • Bei der Weitergabe von Quellcode müssen der obige Copyright-Hinweis, diese Liste der Bedingungen und der folgende Haftungsausschluss beibehalten werden. * Weiterverteilung in binärer Form muss den obigen Copyright-Hinweis, diese Liste von Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und / oder anderen Materialien, die mit der Verteilung bereitgestellt werden, wiedergeben.
  1. Wird dies in meiner Website "Weiterverteilung" verwendet?
  2. Wenn ich dies minimiere, um Bandbreite zu sparen, gehe ich davon aus, dass alle Kommentare entfernt werden. Wenn die Antwort auf # 1 ja ist, bedeutet das nicht, dass ich es legal nicht minimieren darf?

(Das würde stinken, da ich vorhatte, alle JS im Rahmen des Bereitstellungsprozesses automatisch zu minimieren.)

Nathan Long
quelle
Wird dies serverseitig oder clientseitig sein? Client-Seite ist Distribution, Server-Seite nicht (in der Regel).
David Thornley
3
@DavidThornley - Ich stimme Ihrem Punkt zu, aber ich kann mir keinen guten Grund vorstellen, warum Sie JS auf der Serverseite sowieso minimieren würden.
Chris Dolan

Antworten:

33

Die meisten Minimierungsprogramme haben eine Methode, um einen Kommentar genau zu diesem Zweck vor Ort zu hinterlassen.

Zum Beispiel aus der YUI Compressor-Dokumentation :

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

Der Google Closure Compiler behält alle JavaDoc-Blöcke bei, in denen das @licenseoder das @preserveTag enthalten ist:

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

Mit @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.
     */
Orbling
quelle
Oh cool, schön zu wissen!
Nathan Long
@ Nathan Long: Dies ist der empfohlene Ansatz der Leute, die die Minimierer herstellen.
Orbling
22

Ja

Mit einer Einschränkung. Sie müssten den Hinweis an einer anderen Stelle auf der Website platzieren. In der Regel unter einer Seite mit allgemeinen Geschäftsbedingungen oder Hinweisen. Sie können dies einfach tun, indem Sie Folgendes an jedes von Ihnen minimierte JS-Teil (oder einfach über die einzelne JS-Datei) anhängen:

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

Warum sollte die Benachrichtigung nicht im Rahmen des eigentlichen Minimierungsschritts beibehalten werden?

Der einfachste Weg wäre, zuerst die Notiz (manuell) zu extrahieren und sie irgendwo zu speichern. Dann kann Ihr Minifizierungsskript nur die JS minimieren und dann die unveränderte Benachrichtigung verketten.

Ich erwarte natürlich, dass es klein genug ist ... wenn es groß ist, dann ist die Antwort von Josh K wahrscheinlich besser.

Matthieu M.
quelle
Das Problem wird automatisch erkannt, wenn der Hinweis erstellt wird. Ein weiterer Punkt, den Sie angesprochen haben, ist, dass das erneute Herunterladen der Mitteilungen sehr umfangreich und kostspielig sein kann.
Josh K
@Josh K: Ich habe gesagt, die Notiz manuell zu extrahieren. Ich glaube, ich habe auch große Bekanntmachungen behandelt. In diesem Fall bin ich damit einverstanden, dass es besser ist, sie zu trennen.
Matthieu M.
Konkret habe ich an das jQuery Easing Plugin gedacht. Wenn Sie sich den Quellcode ansehen, gibt es fast halb so viele Vertragsbedingungen wie im Code: gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js Also in diesem Fall, wenn ich kann ' t Entfernen Sie den Hinweis, das ist ein großes Problem für die Minimierung.
Nathan Long
3

Nach meiner Lektüre der Lizenzen bin ich der Meinung, dass Sie, um absolut sicher zu sein, den vollständigen Lizenztext jeder Distribution der Software oder ihrer abgeleiteten Werke (einschließlich Minified JS) beifügen müssen. Aus den wichtigsten Open-Source-Lizenzen:

GPLv3:

Sie können wortgetreue Kopien des Quellcodes des Programms in jedem Medium übermitteln, wenn Sie es erhalten, vorausgesetzt, Sie ... geben allen Empfängern eine Kopie dieser Lizenz zusammen mit dem Programm. ...

Sie können eine auf dem Programm basierende Arbeit ... in Form von Quellcode unter den Bedingungen von [dem obigen Abschnitt] übermitteln.

MIT Lizenz:

Der obige Copyright-Hinweis und dieser Erlaubnishinweis sind in allen Kopien oder wesentlichen Teilen der Software enthalten.

BSD-Lizenzen:

Bei der Weitergabe von Quellcode müssen der obige Copyright-Hinweis, diese Liste der Bedingungen und der folgende Haftungsausschluss beibehalten werden.

Es sieht jedoch so aus, als würde dieser Ansatz von den meisten Menschen nicht verfolgt. Selbst der offizielle minimierte Bootstrap von Twitter enthält nur einen kleinen Copyright-Hinweis, sodass Sie gegen die MIT-Lizenz verstoßen würden, wenn Sie sie Ihren Benutzern zur Verfügung stellen würden.

Brian Gordon
quelle