Czy mogę zminimalizować Javascript, który wymaga informacji o prawach autorskich?

37

Myślę, że to właściwie pytanie prawne, ale dotyczy oprogramowania. Zaraz dołączę wtyczkę JS do projektu. Komentarze obejmują:

  • Redystrybucja kodu źródłowego musi zawierać powyższą informację o prawach autorskich, niniejszą listę warunków i następujące wyłączenie odpowiedzialności. * Redystrybucje w formie binarnej muszą zawierać powyższą informację o prawach autorskich, niniejszą listę warunków oraz następujące wyłączenie odpowiedzialności w dokumentacji i / lub innych materiałach dostarczonych wraz z dystrybucją.
  1. Czy użycie tego w mojej witrynie internetowej oznacza „redystrybucję”?
  2. Jeśli zminimalizuję to, aby zaoszczędzić przepustowość, zakładam, że usunie wszystkie komentarze. Jeśli odpowiedź na pytanie nr 1 brzmi „tak”, to czy nie oznacza to, że nie mam prawa tego umniejszać?

(To by śmierdziało, ponieważ planowałem automatycznie zminimalizować wszystkie JS w ramach procesu wdrażania).

Nathan Long
źródło
Czy będzie to po stronie serwera czy po stronie klienta? Po stronie klienta chodzi o dystrybucję, po stronie serwera nie (zgodnie z ogólną zasadą).
David Thornley,
3
@DavidThornley - zgadzam się z twoją tezą, ale nie mogę wymyślić dobrego powodu, dla którego miałbyś zminimalizować JS po stronie serwera.
Chris Dolan,

Odpowiedzi:

34

Większość programów minimalizujących ma pewną metodę pozostawienia komentarza na miejscu w tym właśnie celu.

Na przykład z dokumentacji kompresora 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.
     */

Kompilator Google Closure zachowa każdy blok JavaDoc, który zawiera tag @licenselub@preserve :

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

Z @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
źródło
Och fajnie, miło wiedzieć!
Nathan Long
@Nathan Long: Jest to zalecane podejście osób, które dokonują minimalizacji.
Orbling
23

tak

Z zastrzeżeniem. Musisz umieścić to powiadomienie w innym miejscu witryny. Zazwyczaj na stronie Warunki lub Informacje. Możesz to zrobić, dodając następujące elementy na górze każdego zminimalizowanego elementu JS (lub po prostu na szczycie pojedynczego pliku JS):

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

Właściwie, dlaczego nie zachować powiadomienia jako części samego kroku minimalizacji?

Najprostszym sposobem byłoby wyodrębnienie powiadomienia (ręcznie) i zapisanie go gdzieś. Następnie skrypt skryptu minimalizacji może po prostu zminimalizować JS, a następnie połączyć niezmienione powiadomienie.

Spodziewam się, że będzie wystarczająco mały ... jeśli jest duży, to odpowiedź Josha K. jest prawdopodobnie lepsza.

Matthieu M.
źródło
Problem automatycznie wykrywa powiadomienie podczas budowania. Inną kwestią, na którą poruszyłeś, jest to, że powiadomienia mogą być dość duże i kosztowne do ponownego pobrania.
Josh K
@Josh K: Powiedziałem, że ręcznie wyodrębniłem ogłoszenie. Jeśli chodzi o duże powiadomienia, myślę, że to też znalazłem, w takim przypadku zgadzam się, że lepiej jest je rozdzielić.
Matthieu M.
W szczególności myślałem o wtyczce jQuery Easing. jeśli spojrzysz na źródło, jest prawie połowa wierszy warunków i zasad jak w kodzie: gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js Więc w tym przypadku, jeśli mogę ” t usunąć zawiadomienie, to duży problem z minifikacją.
Nathan Long
3

Po przeczytaniu licencji uważam, że aby być całkowicie bezpiecznym, musisz dołączyć pełny tekst licencji do każdej dystrybucji oprogramowania lub jego dzieł pochodnych (w tym zminimalizowanej JS). Z głównych licencji open-source:

GPLv3:

Możesz przekazać dosłownie kopie kodu źródłowego Programu w chwili jego otrzymania, na dowolnym nośniku, pod warunkiem, że ... przekażesz wszystkim odbiorcom kopię niniejszej Licencji wraz z Programem. ...

Możesz przekazać pracę opartą na Programie ... w formie kodu źródłowego zgodnie z warunkami [powyższej sekcji].

Licencja MIT:

Powyższa informacja o prawach autorskich i ta informacja o pozwoleniu będą zawarte we wszystkich kopiach lub znacznych częściach Oprogramowania.

Licencje BSD:

Redystrybucja kodu źródłowego musi zawierać powyższą informację o prawach autorskich, niniejszą listę warunków i następujące wyłączenie odpowiedzialności.

Wygląda jednak na to, że takie podejście nie jest stosowane przez większość ludzi. Nawet oficjalny zminimalizowany Bootstrap z Twittera zawiera tylko małą informację o prawach autorskich, więc naruszyłbyś licencję MIT, gdybyś podał ją swoim użytkownikom.

Brian Gordon
źródło