Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7096145
  • 博文数量: 703
  • 博客积分: 10821
  • 博客等级: 上将
  • 技术积分: 12042
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-02 10:41
个人简介

中科院云平台架构师,专注于数字化、智能化,技术方向:云、Linux内核、AI、MES/ERP/CRM/OA、物联网、传感器、大数据、ML、微服务。

文章分类

全部博文(703)

分类: 项目管理

2006-07-18 10:32:00

GNU 次要公共许可协议
Lesser General Public License

版权所有 © 1991-1999 Free Software Foundation,Inc.59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

允许每个人复制和发布这一许可原始文件的副本,但绝对不允许对它进行任何修改。

[这是第一次发表的次要公共许可协议(Lesser GPL)版本。它同时也可视为 GNU 函数库公共许可(GNU Library Public License)第二版的后继者,故称为 2.1 版]

声明

此份 GNU 次要公共许可协议并非官方译本,只有 GNU LGPL 才能适用于 GNU LGPL 软件。

引言

  大多数软件许可决意剥夺您共享和修改软件的免费。相反的,GNU 通用公共许可力图保证您共享和修改免费软件的免费 —— 保证免费软件对所有使用者都是免费的。
  这个许可,次要公共许可协议,适用于一些由免费软件基金会与其他决定使用此许可的软件作者,所特殊设计的软件套件 —— 象是函数库。您也可以使用它,但我们建议您事先仔细考虑,基于以下的说明是否此许可或原来的通用公共许可在任何特殊情况下均为较好的方案。
  当我们谈到免费软件时,我们所指的是免费,而不是价格。我们的 GNU 通用公共许可是设计用以确保使您有发布免费软件备份的免费(如果您愿意,您可以对此项服务收取一定的费用);确保您能收到程序源代码或者在您需要时能得到它;确保您能修改软件或将它的一部分用于新的免费软件;而且还确保您知道您可以做上述的这些事情。
  为了保护您的权利,我们需要作出限制:禁止任何人否认您上述的权利,或者要求您放弃这些权利。如果您发布软件的副本,或者对之加以修改,这些规定就转化为您的责任。
  例如,如果您发布此函数库的副本,不管是免费还是收取费用,您必须将您享有的一切权利给予接受者;您必须确保他们也能收到或得到原始程序码;如果您将此函数库与其他的程序码链接,您必须提供完整的目标文件和程序给接受者,则当他们修改此函数库并重新编译过后,可以重新与目的档案链接。您并且要将这些条款给他们看,使他们知道他们有这样的权利。
  我们采取两项措施来保护您的权利:
  1. 用版权来保护函数库。
  2. 我们提供您这份许可,赋予您复制,发布和(或)修改这些函数库的法律许可。
  为了保护每个发布者,我们需要非常清楚地让每个人明白,免费函数库是没有担保责任的。如果由于某人修改了函数库,并继续加以传播,我们需要它的接受者明白:他们所得到的并不是原始的版本。故由其他人引入的任何问题,对原作者的声誉将不会有任何的影响。
  最后,由于软件专利不断地威胁免费软件的存在,我们希望商业公司无法藉由自专利持有者取得一个受限的许可,而有效地限制免费软件的使用者。因此,我们坚持一个函数库所能取得的任何专利,必须与本许可所声明的“完全免费使用”一致。
  大部分的 GNU 软件,包括一些函数库,是受到原来的 GNU 通用公共许可的保护。本许可,GNU 次要通用公共许可,适用于特殊设计的函数库,且与原来的通用公共许可有很大的不同。我们在特定的函数库中使用它,以准许非免费的程序可以与这些函数库链接。当一个程序与一个函数库链接,不论是静态链接或使用共享函数库,二者的结合可以合理地说是结合的作品,一个原来的函数库的衍生品。因此,原来的通用公共许可只有在整个结合品满足其免费的标准时,才予许链接。次要通用公共许可则以更宽松的标准允许其他程序码与本函数库链接。
  我们称此许可“次要”通用公共许可,是因为它比起原来的通用公共许可对使用者的免费做到较少的保护。在与非免费软件竞争时,它也提供其他免费软件的写作者较少的优势。这些不利之处正是我们使用原来的通用公共许可于许多函数库的理由。然而,次要的许可可在某些特殊场合下带来好处。例如,在少数情况下,可能会有特殊的需要而鼓励大家尽可能广泛地使用特定的函数库,因而使它成为实际上的标准。为了达到此目标,必须允许非免费的程序使用此函数库。一个较常发生的情况是一个免费的函数库与一个被广泛使用的非免费函数库做相同的工作,在此情况下,限制只有免费软件可以使用此免费函数库不会有多少好处,故我们如用了次要通用公共许可。
  在其他情况下,允许非免费程序使用特定的函数库,可以让更多的人们使用免费软件的大部分。例如,允许非免费程序使用 GNU C 函数库可以让更多的人们使用整个 GNU 操作系统,以及它的变形,GNU/Linux 操作系统。
  尽管次要通用共公许可对使用者的免费是较少的保护的,它却能确保与此函数库链接的程序的使用者拥有免费,而且具有使用修改过的函数库版本来执行该程序的必要方法。
  以下是复制、发布、以及修改的精确条款与条件。请注意“基于函数库的作品”以及“使用函数库的作品”之间的差异:前者包含来自函数库修改过的源代码;而后者则必须与函数库结合才能执行。

GNU 次要通用公共许可

有关复制、发布和修改的条款和条件

  1. 本许可适用于任何软件函数库,或其他包含了由版权所有者加入的注意事项的程序,或其他有公信力的团体宣称其程序可以在次要通用公共许可(也称之为“本许可”)的条款下发布。每一位许可接受者以“您”来称呼。
      一个“函数库”意指一些软件函数的集合,以及或准备好的资料以方便与应用程序 (其使用了其中某些函数与资料) 链接形成可执行的程序。
      以下,“函数库”一词指的是任何在本条款下发布的这一类软件函数库或作品,一个“基于本函数库的作品”意指函数库或任何在版权法下的衍生作品:也就是说,一个包含了本函数库或其一部分的作品,可以是原封不动的,或经过修改的,和(或)直接翻译成其他语言的。(在下文中,翻译是不受限地包含在“修改”的条款中。)
      作品的“源代码”意指对作品进行修改最优先择取的形式。对函数库而言,完整的源代码意指所有模组的所有原始程序,加上有关的介面的定义,加上控制函数库的安装和编译的脚本。
      本许可条款不适用于复制,发布和修改以外的活动。这些活动超出这些条款的范围。使用本函数库来执行本程序的动作不受条款的限制,而程式的输出只有在其内容所构成的作品是基于本函数库时(与在什么样的工具中使用本函数库来输出无关),这一条款才适用。以上是否为真则取决于本函数库具体用来做什么。

  2. 只要您在每一程序副本上明显和恰当地宣告版权声明和不承担担保的声明,并保持此许可的声明和没有担保的声明完整无损,并和程序一起给其他每位程序接受者一份许可的副本,您就可以用任何媒体复制和发布您收到的函数库的完整源代码。
      您可以为转让副本的实际行动收取一定费用。您也可以选择提供担保以换取一定的费用。

  3. 只要您同时满足下面的所有条件,您就可以按前面第一款的要求修改函数库的一个或几个副本或它的任何部分,以此形成基于此函数库的作品,并且复制和发布这一经过修改的程序或作品:

    1. 被修改的作品本身必须是一个软件函数库。
    2. 您必须在修改过的档案中附有明确的说明:您修改了此一档案及任何修改的日期。
    3. 您必须让整个作品允许第三方在此许可条款下可以免费使用。
    4. 如果修改过的函数库其某个设备使用到了“使用本函数库的应用程序”所提供的函数或资料表格,却不是当此设备被呼叫时以参数列传入时,则您必须确实做到,当应用程序不提供这样的函数或表格时,则此设备依旧能工作,且其执行的任何目的仍然有意义。

      (例如,一个函数库的函数用来计算平方根,其目的是有完整的定义且与应用程序是无关的。因此, 2d 小节要求任何本函数会使用的,由应用程序所提供的函数或表格必须是选择性的:如果应用程式不提供的话,则计算平方根的函数必须依旧能计算平方根)


      这些要求适用于整个修改过的作品。如果能够确定作品的一部分并非本函数库的衍生产品,且可以合理地单独考虑并将它与原作品分开的话,则当您将它作为独立的作品发布时,它不受此许可和其条款的约束。但是当您将这部分与基于本函数库的作品一同发布时,则整个套件将受到本许可条款约束,其对于其他许可持有人的使用范围扩大到整个产品,也就是套件的每个部分,不管它是谁写的。
      因此,本条款的意图不在于索取权利,或剥夺完全由您完成的作品的权利,而是履行权利来控制基于本函数库的集体作品或衍生作品的发布。此外,将与本函数库无关的作品和本函数库(或基于本函数库的作品)一起放在贮存媒体或发布媒体的同一卷上,并不导致将其他作品置于此许可的约束范围之内。

  4. 对于一个函数库的副本,您可以选择性地使用原来的 GNU 通用公共许可上的条款来取代本许可上的条款。如果您要这么做,您必须修改所有的参考到本许可的注意事项,使它们指向原来的 GNU 通用公共许可,第二版,以取代本许可(如果有比第二版的原来的 GNU 通用公共许可更新的版本出现的话,则如果您愿意的话可以特别指明使用新版)。请不要对这些注意事项做出其他的改变。
      一旦在一个副本上做了这样的改变,则该副本就无法撤回这样的改变,故原来的 GNU 通用公共许可将适用于所有后续的副本以及由此副本衍生出来的作品。
      此一选择性适用于当您想要将一部分的函数库源代码复制到一个非函数库的程序使用时。

  5. 您可以以目标码或可执行形式复制或发布本函数库(或符合第 2 条款,基于本函数库的作品),只要您遵守前面的第 1、2 条款,并同时提供完整的相关机器可读的源代码,而这些源代码必须在前面的第 1 与第 2 款条件下,在通常习惯上用来做软件交换的媒体上发布。
      如果所发布的目标码是由指定的地点提供拷贝索取,那么由同一地点所提供等价的源代码拷贝索取可以算作源代码的发布,即使第三方不强求与目标码一起复制源代码。

  6. 一个程序若包含不经任何部分修改的函数库,但却是设计经由编译或链接的方式与本函数库一同工作者,称之为“使用函数库的作品”。这样的一个作品,严格地说,并非本函数库的衍生作品,因而不在本许可的范围之内。
      然而将“使用函数库的作品”与本函数库链接而产生可执行程序,则是本函数库的衍生品(因为它包函了本函数库的一部分),而不是“使用函数库的作品”,因此其可执行程序包含在本许可的范围内。第 6 条款说明了发布此可执行程序的条款。
      当“使用函数库的作品”使用了函数库部分的标头档内容时,则此作品即使其源代码不属于本函数库的衍生品,但其目标码仍然是。这一点是否为真特别在是否本作品可以在不需要本函数库即可链接,或者是否该作品本身也是一个函数库时特别明显。
      如果这样的目标档只使用数字参数、资料结构层级与附属品、以及小巨集和小内□式(小于等于十行),则此目标档的使用是不受限的,不论是否它是合法的衍生作品。(但可执行程序若包函此目标档以及一部分的函数库,仍然将在第 6 条款的规定下)
      否则的话,如果本作品是本函数库的衍生品,您必须在第 6 条款的规定下发布该作品的目标码。任何包含该作品的可执行程序也在第 6 条款的范围内,不论它们是否直接与本函数库链接。

  7. 做为上述条款的例外情况,您也可以将 "使用函数库的作品" 与本函数库结合或链接,以产生包含部分本函数库的作品,并在允许使用者自身使用时可以修改该作品,以及在对修改进行反组译除错的情况下,您可以依照您的选择发布该作品。
      您必须在每个作品的副本突显出如下的注意事项:本函数库在作品中被使用,以及本函数库以及它的使用是在本许可的规定下。您必须提供本许可的副本。如果该作品在执行时显示版权声明,您必须在其中包含本函数库的版权声明,以及指引使用者取得本许可的副本。同时,您必须做到下列的其中一项:

    1. 必须将完整的机器可读的函数库源代码包含在该作品中,包括任何该作品使用到的改变(这些改变必须在前述第 1 与第 2 条款的要求下发布);而且,如果该作品是一个与函数库链接的“完整的使用函数库的作品”,则要有目标码或源代码,如此使用者可以修改本函数库且可以重新链接,以产生包函修改过的函数库的修改过的可执行程序。(理所当然的若使用者修改了函数库的档案定义内容时,则该作品不必然可以重新编译以使用修改过的定义。)
    2. 在与函数库链接时使用适当的分享函数库链接机制。一个适当的机制是:一、在执行时使用已存在于使用者的电脑中的函数库副本,而不是将函数库的函数复制到可执行程序里,以及 二、如果使用者安装了一份修改过的函数库,只要修改过的版本在介面上与该作品在编译链接时所用的版本是相容的,则该执行程序可以与修改过的函数库运作良好。
    3. 在该作品内提供书面报价,有效期不少于三年,以提供同样的使用者上述第 6a 款中的内容,费用不得超过该程序发布的实际成本。 如果所发布的作品是由指定的地点提供拷贝索取,则由同一地点提供上述内容的等价拷贝索取。
    4. 确定使用者已经收到该作品的一份复制,或是您已经寄给该使用者一份复制品。

      对于一个可执行程序,其所需的“使用函数库的作品”的形式必须包括任何要从中再产生可执行程序时所需的资料与工具程序。然而,有一个特殊例外,其所发布的内容不需要包括任何一般与“可执行本程序的操作系统”的主要部分(如编译器、核心部分等)一起发布的部分(不论是源代码或可执行码),除非这些组成部分和可执行作品结合在一起。
      有一个可能情况是,这些要求与其他通常不与操作系统在一起的私有函数库的版权限制相抵触,这样的抵触表示您不能将它们与本函数库一起用于您发布的可执行程序中。

  8. 您可以将使用本函数库的函数库设备,以及其他不在本许可范围内的函数库,对等地放入一个单独的函数库中,并在基于本函数库的作品以及其他函数库在其他状态下同意可以个别发布,以及您做到以下两点的情况下,您可以发布此结合的函数库:

    1. 将基于本函数库的作品单独不与其他函数库设备结合地,与此结合的函数库一同发布。该作品必须在上述条款的规定下发布。
    2. 在此结合的函数库中明显地指出其中一部分的作品是基于本函数库,并且说明那里可以找到同样不具结合形式的作品。

  9. 除非您明确按许可提出的要求去做,否则您不能复制、修改、转发许可、与本函数库链接、和发布本函数库。任何试图用其他方式复制、修改、转发许可、与本函数库链接、和发布本函数库是无效的,而且将自动结束许可赋予您的权利。然而,对那些从您那里按许可条款得到副本和权利的人们,只要他们继续全面履行条款,许可赋予他们的权利仍然有效。

  10. 您没有在许可上签字,因而您没有必要一定接受此一许可。然而,没有任何其他东西赋予您修改和发布本函数库及其衍生作品的权利。如果您不接受许可,这些行为是法律禁止的。因此,如果您修改或发布函数库(或任何基于函数库的作品),您就表明您接受这一许可以及它的所有有关复制、发布和修改本函数库或基于它的作品的条款和条件。

  11. 每当您重新发布函数库(或任何基于函数库的作品)时,接受者自动从原始许可颁发者那里接到受这些条款和条件支配的复制、发布、链接或修改本函数库的许可。您不可以强迫接受者履行除了这里赋予他们的权利之外的其他限制。您也没有强求第三方履行许可条款的义务。

  12. 如果由于法院判决或违反专利的指控或任何其他原因(不限于专利问题)的结果,使得强加于您的条件(不管是法院判决,协议书或其他)和许可的条件有冲突时,他们也不能令您背离许可的条款。在您不能同时满足本许可规定的义务及其他相关的义务来发布函数库时,则结果您只能够根本不发布函数库。例如,如果某一专利许可不允许所有直接或间接从您那里接受副本的人们,在不付专利费的情况下重新发布函数库,唯一能同时满足两方面要求的办法是停止发布函数库。
      如果本条款的任何部分在特定的环境下无效或无法实施,就使用条款的其余部分,并将这部分条款作为整体用于其他环境。本条款的目的不在于引诱您侵犯专利或其他财产权的要求,或争论这种要求的有效性。本条款的主要目的在于保护免费软件发布系统的完整性。它是通过公共许可的应用来实现的。许多人已依赖同是出自此系统的应用程序,经由此系统发布大量免费软件而做出慷慨的供献。作者/捐献者有权决定他/她是否通过任何其他系统发布软件,许可持有人不能强加这种选择。
      本节的目的在于明确说明许可其余部分可能产生的结果。

  13. 如果由于专利或者由于有版权的介面问题使函数库在某些国家的发布和使用受到限制,则在许可约束下的原始版权拥有者可以增加发布地区的限制条款,将这些国家明确排除在外,并在这些国家以外的地区发布函数库。在这种情况下,许可套件含的限制条款和许可正文一样有效。

  14. 免费软件基金会可能随时出版次要通用公共许可的修改版或新版。新版和当前的版本在原则上保持一致,但在提到新问题时或有关事项时,在细节上可能出现差别。
      每一版本都有不同的版本号。如果函数库指定可适用的许可版本号以及 "任何更新的版本" ,您有权选择遵循指定的版本或免费软件基金会以后出版的新版本。如果函数库未指定许可版本,您可选择免费软件基金会已经出版的任何版本。

  15. 如果您愿意将函数库的一部分结合到其他免费程序中,而它们的发布条件不同,请写信给作者,要求准予使用。如果是免费软件基金会加以版权保护的软件,写信给免费软件基金会,我们有时会作为例外的情况处理。我们的决定受两个主要目标的指导,这两个主要目标是:我们的免费软件的衍生作品继续保持免费状态,以及从整体上促进软件的共享和重复利用。

    没有担保

  16. 由于函数库准予免费使用,在适用法准许的范围内,对函数库没有担保。除非另有书面说明,版权所有者或其他提供函数库的人们“一样”不提供任何类型的担保,不论是明确的,还是隐含的,包括但不限于可销售和适合特定用途的隐含保证。全部的风险,如函数库的质量和性能问题都由您来承担。如果函数库出现缺陷,您应当承担所有必要的服务、修复和改正的费用。

  17. 除非适用法或书面协议的要求,在任何情况下,任何版权所有者或任何按许可条款修改和发布函数库的人们都不对您的损失负有任何责任。包括由于使用或不能使用函数库引起的任何一般的、特殊的、偶然发生的或重大的损失(包括但不限于数据的损失,或者数据变得不精确,或者您或第三方的持续的损失,或者函数库不能和其他软件协调运行等)。即使版权所有者和其他人提到这种损失的可能性也不例外。


条款结束

如何将这些条款用到您的新函数库

  如果您开发了新函数库,而且您需要它得到公众最大限度的利用,要做到这一点的最好办法是将它变为免费软件,使得每个人都能在遵守本条款(或者是在原来的通用公共许可的条款)的基础上对它进行修改和重新发布。
  为了做到这一点,请将函数库附上下列声明。最安全的方式是将它放在每个源代码档案的开头,以便最有效地传递拒绝担保的信息。每个文件至少应有“版权所有”行以及在什么地方能看到声明全文的说明。

      <用一行来描述函数库的名称、它的用途和简单说明>
      版权所有 © <年份> <作者姓名>

      这一函数库是免费软件,您可以遵照免费软件基金会出版的 GNU 次要通用公共许可条款来修改和重新发布这一程序,或者用许可的第二版,或者(根据您的选择)用任何更新的版本。

      发布这一函数库的目的是希望它有用,但没有任何担保。甚至没有适合特定目的而隐含的担保。更详细的情况请参阅 GNU 次要通用公共许可。

      您应该已经和函数库一起收到一份 GNU 次要通用公共许可的副本。如果还没有,写信给 Free Software Foundation,Inc.,59 Temple Place,Suite 330,Boston,MA 02111-1307 USA

  此外还应加上如何藉由电子邮件或一般信件与您保持联系的信息。
  如有需要,您应该取得您的上司(如果您是程序员)或您的学校签署放弃函数库版权的声明。下面只是一个例子,您应该改变相应的名称:

      Yoyodyne 公司以此方式否认 James Random Hacker 所写的“Frob”函数库(用来优化调节器的函数库)的所有版权。
      ,1990年4月1
      副总裁:Ty coon

以上即为 GNU 次要公共许可协议的全部内容。

阅读(8828) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~