我可以缩小需要版权声明的Javascript吗?


37

我想这实际上是一个法律问题,但它与软件有关。我将在项目中包含一个JS插件。评论包括:

  • 重新分发源代码必须保留上述版权声明,此条件列表和以下免责声明。*以二进制形式重新分发必须在分发随附的文档和/或其他材料中复制上述版权声明,此条件列表以及以下免责声明。
  1. 是在我的网站上使用“重新分发”吗?
  2. 如果我将其最小化以节省带宽,我认为它将删除所有注释。如果对#1的回答是“是”,那是否意味着我在法律上不允许将其缩小?

(这很臭,因为我计划在部署过程中自动缩小所有JS。)


这将是服务器端还是客户端端?客户端是分发,服务器端不是(通常)。
David Thornley,

3
@DavidThornley-我同意你的观点,但是我想不出为什么要压缩服务器端JS的充分理由。
克里斯·多兰

Answers:


34

大多数缩小软件都具有为此目的保留原位注释的某种方法。

例如,从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.
     */

Google Closure编译器将保留其中带有@license@preserve标记的任何JavaDoc块:

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

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

哦,很酷,很高兴知道!
内森·朗

@Nathan Long:这是制造极简主义者的推荐方法。
2011年

23

警告。您必须将通知放在网站上的其他位置。通常在“条款和条件”或“通知”页面下。您可以简单地通过将以下内容附加到已缩小的每个JS片段的顶部(或简单地在单个JS文件的顶部)来做到这一点:

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

4

实际上,为什么不将通知保留为缩小步骤的一部分呢?

最简单的方法是首先(手动)提取通知并将其保存在某个地方。然后,您的缩小脚本可以只缩小JS,然后连接未更改的通知。

我当然希望它足够小……如果很大,那么乔什·K的答案可能会更好。


问题会在构建时自动检测到通知。您谈到的另一点是,这些通知可能很大,而且重新下载的成本很高。
乔什K

@Josh K:我确实说过手动提取通知。至于大告示,我想我也对此有所了解,在这种情况下,我同意最好将其分开。
Matthieu M.

具体来说,我在考虑jQuery简易插件。如果您查看源代码,则条款和条件的行数几乎是代码行的一半:gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js因此,在这种情况下,如果可以删除通知,这对于缩小是一个很大的问题。
内森·朗

3

通过阅读许可证,我相信为了完全安全,您需要在软件或其派生作品(包括精简版JS)的任何发行版中包含完整的许可证文本。从主要的开放源代码许可中:

GPLv3:

您可以在接收任何本程序的源代码时逐字复制本程序的源代码,但前提是您...与所有程序一起向所有接收者提供本许可证的副本。...

您可以根据[以上部分]的条款,以源代码的形式传达基于本程序的作品。

MIT许可证:

以上版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。

BSD许可证:

重新分发源代码必须保留上述版权声明,此条件列表和以下免责声明。

但是,似乎大多数人都没有采用这种方法。甚至来自Twitter的官方最小化Bootstrap也仅包含少量版权声明,因此,如果将MIT许可证提供给用户,则会违反MIT许可证。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.