RXTX 中文文档

RXTX 完整许可证文本

本文档为 RXTX 官方 COPYING 文件的完整中文翻译。 原文更新于:2012年6月6日

说明:本文件包含两部分内容:

  1. RXTX 许可证(RXTX 特有的许可证头注释)
  2. GNU LGPL v2.1 全文(GNU Lesser General Public License,第 2.1 版)

第一部分:RXTX 许可证

/*-------------------------------------------------------------------------
|   RXTX License v 2.1 - LGPL v 2.1 + Linking Over Controlled Interface.
|   RXTX is a native interface to serial ports in java.
|   Copyright 1997-2012 by Trent Jarvi tjarvi@qbang.org and others who
|   actually wrote it.  See individual source files for more information.
|
|   A copy of the LGPL v 2.1 may be found at
|   http://www.gnu.org/licenses/lgpl.txt on March 4th 2007.  A copy is
|   here for your convenience.
|
|   This library is free software; you can redistribute it and/or
|   modify it under the terms of the GNU Lesser General Public
|   License as published by the Free Software Foundation; either
|   version 2.1 of the License, or (at your option) any later version.
|
|   This library is distributed in the hope that it will be useful,
|   but WITHOUT ANY WARRANTY; without even the implied warranty of
|   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
|   Lesser General Public License for more details.
|
|   An executable that contains no derivative of any portion of RXTX, but
|   is designed to work with RXTX by being dynamically linked with it,
|   is considered a "work that uses the Library" subject to the terms and
|   conditions of the GNU Lesser General Public License.
|
|   The following has been added to the RXTX License to remove
|   any confusion about linking to RXTX.   We want to allow in part what
|   section 5, paragraph 2 of the LGPL does not permit in the special
|   case of linking over a controlled interface.  The intent is to add a
|   Java Specification Request or standards body defined interface in the 
|   future as another exception but one is not currently available.
|
|   http://www.fsf.org/licenses/gpl-faq.html#LinkingOverControlledInterface
|
|   As a special exception, the copyright holders of RXTX give you
|   permission to link RXTX with independent modules that communicate with
|   RXTX solely through the Sun Microsytems CommAPI interface version 2,
|   regardless of the license terms of these independent modules, and to copy
|   and distribute the resulting combined work under terms of your choice,
|   provided that every copy of the combined work is accompanied by a complete
|   copy of the source code of RXTX (the version of RXTX used to produce the
|   combined work), being distributed under the terms of the GNU Lesser General
|   Public License plus this exception.  An independent module is a
|   module which is not derived from or based on RXTX.
|
|   Note that people who make modified versions of RXTX are not obligated
|   to grant this special exception for their modified versions; it is
|   their choice whether to do so.  The GNU Lesser General Public License
|   gives permission to release a modified version without this exception; this
|   exception also makes it possible to release a modified version which
|   carries forward this exception.
|
|   You should have received a copy of the GNU Lesser General Public
|   License along with this library; if not, write to the Free
|   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
|   All trademarks belong to their respective owners.
--------------------------------------------------------------------------*/

RXTX 许可证条款摘要


第二部分:GNU Lesser General Public License

Version 2.1, February 1999

版权所有 (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

允许任何人复制和分发本许可文件原文,但不允许修改。

【这是发布的第一个 Lesser GPL 版本。它也是 GNU Library Public License 第 2 版的后续版本,因此版本号为 2.1。】


前言

大多数软件许可证的设计目的在于剥夺你共享和修改软件的自由。相比之下,GNU 通用公共许可证旨在确保你共享和修改自由软件的自由——确保软件对所有用户都是自由的。

本许可证——GNU Lesser General Public License,适用于某些特定软件包(通常是库)——由自由软件基金会及其他作者决定使用。你也可以使用它,但我们建议你首先仔细考虑,在特定情况下使用本许可证还是使用普通通用公共许可证哪一种策略更好。

当我们谈论自由软件时,我们指的是使用上的自由,而非价格。我们的通用公共许可证旨在确保你有权分发自由软件的副本(如果你愿意,也可以收取费用);确保你能够获得源代码,或者如果你愿意,也可以获取它;确保你能够修改软件并在新的自由程序中使用其部分代码;以及确保你知道自己拥有这些权利。

为了保护你的权利,我们需要制定一些限制,禁止分销商拒绝你这些权利或要求你放弃这些权利。这些限制转化为你在分发库的副本或修改库时必须承担的一些责任。

例如,如果你免费或收费分发库的副本,你必须给予接收者我们给予你的所有权利。你必须确保他们也能收到或获得源代码。如果你将其他代码与库链接,你必须提供完整的目标文件给接收者,以便他们在修改库并重新编译后能够重新链接。而且你必须向他们展示这些条款,以便他们知道自己的权利。

我们使用两步法保护每个分销商的权利:(1) 我们对库进行版权保护,(2) 我们向你提供本许可证,赋予你复制、分发和/或修改库的法律许可。

为了确保免费库确实免费,我们希望确保没有人能够否认库的自由,也没有人需要从原作者那里获得修改版的许可。因此,明确指出免费库的修改版本必须以自由软件的形式发布。

最后,任何免费程序都受到软件专利的持续威胁。我们希望确保公司不能通过从专利持有人处获得限制性许可证来有效限制免费程序的用户。因此,我们坚持认为,库的任何版本获得的专利许可证必须符合本许可证规定的完整自由使用标准。

大多数 GNU 软件,包括一些库,都受普通 GNU 通用公共许可证的保护。本许可证——GNU Lesser General Public License——适用于某些特定库,与普通通用公共许可证有很大不同。我们在本许可证中对某些库使用此许可证,以允许将这些库链接到非自由程序中。

当程序与库静态或使用共享库链接时,就法律而言,这是两个作品的组合,是原始库的衍生作品。因此,普通通用公共许可证允许这种链接,但前提是整个组合符合其自由标准。Lesser General Public License 允许以更宽松的标准将其他代码与库链接。

我们称本许可证为 “Lesser” General Public License,因为它对用户自由的保护比普通通用公共许可证少。它也为其他自由软件开发人员提供了比竞争性非自由程序更少的优势。这些不利因素是我们对许多库使用普通通用公共许可证的原因。然而,在某些特殊情况下,Lesser 许可证确实有其优势。

例如,在极少数情况下,可能需要特殊鼓励广泛使用某个特定库,使其成为事实上的标准。在这种情况下,应允许非自由程序使用该库。更常见的情况是,一个免费库与广泛使用的非免费库做同样的工作。在这种情况下,通过仅将免费库限制在自由软件上来限制免费库几乎没有什么好处,因此我们使用 Lesser General Public License。

在其他情况下,允许在非自由程序中使用特定库能使更多人以更大的自由度使用大量自由软件。例如,允许在非自由程序中使用 GNU C 库能使更多人以完整 GNU 操作系统(及其变体 GNU/Linux 操作系统)的方式使用它们。

虽然 Lesser General Public License 对用户自由的保护较少,但它确实确保了与库链接的程序的用户拥有使用该程序并在修改后的库版本上运行它的自由和手段。

有关复制、分发和修改的精确条款和条件如下。请密切关注”基于库的作品”和”使用库的作品”之间的区别。前者包含从库派生的代码,而后者必须与库结合才能运行。


GNU LESSER GENERAL PUBLIC LICENSE

关于复制、分发和修改的条款和条件

0. 本许可协议

本许可协议适用于任何包含版权持有人或其他授权方放置的声明的软件库或其他程序,表明可以按照本 Lesser General Public License 的条款分发本软件。每个许可证持有者被称为”你”。

“库”指一组软件函数和/或数据,准备好以便与应用程序方便地链接(这些应用程序使用其中一些函数和数据)以形成可执行文件。

“库”指按照本条款分发的任何此类软件库或作品。”基于库的作品”指库或任何衍生作品(根据版权法):即包含库或库的一部分的作品,无论是逐字复制还是带有修改和/或直接翻译成另一种语言。(在下文中,翻译包含在”修改”一词中,没有限制。)

作品”源代码”指修改作品的首选形式。对于库而言,完整源代码指其包含的所有模块的所有源代码,加上任何相关的接口定义文件,加上用于控制库编译和安装的脚本。

复制、分发和修改以外的活动不受本许可协议约束,不在其范围内。使用库运行程序的活动不受限制,只有当其内容构成基于库的作品(独立于使用编写它的库的工具)时,其输出才受本许可协议约束。这取决于库做什么和使用库的程序做什么。

1. 你可以复制和分发库的完整源代码

你可以按照收到时的原样,以任何媒介复制和分发库的完整源代码,但必须满足以下条件:在每份副本上显著地、恰当地发布适当的版权声明和免责声明;保留所有提及本许可协议的文件;并随库分发本许可协议的副本。

你可以为物理传输副本的行为收取费用,也可以选择提供保修服务并收取费用。

2. 你可以修改你的库副本

你可以按照上述第 1 节的条款修改库的一个或多个副本,从而形成基于库的作品,并按照第 1 节的条款复制和分发该修改作品或作品,但必须同时满足以下条件:

a) 修改后的作品本身必须是软件库。

b) 你必须促使修改后的文件携带显眼的声明,说明你更改了文件以及任何更改的日期。

c) 你必须促使整个作品按照本许可协议的条款免费许可给所有第三方。

d) 如果修改后的库中的某个功能引用了由使用该功能的应用程序提供的函数或数据表(不是作为调用功能时传递的参数),你必须做出真诚的努力,以确保当应用程序不提供此类函数或表时,该功能仍然能够运行,并且能够执行其剩余的有意义的目的。

(例如,库中计算平方根的函数有一个完全独立于应用程序的目的,即应用程序。因此,第 2d 款要求任何应用程序提供的函数或由此函数使用的表必须是可选的:如果应用程序不提供它,平方根函数仍然必须计算平方根。)

这些要求适用于修改后的作品整体。如果可识别的部分不是从库派生的,并且可以合理地被认为是独立的单独作品,那么本许可协议及其条款在分发这些部分时不适用。但是,当你将相同部分作为基于库的整个作品的一部分分发时,必须按照本许可协议的条款分发,对其他许可证持有人的权限扩展到整个作品,因此也扩展到每个人,无论谁写的。

因此,本节的目的不是声明你对完全由你编写的作品的权利或质疑你对这些作品的权利;相反,其目的是行使权利来控制衍生作品或集体作品的分发。

将另一个非基于库的作品与库(或基于库的作品)在存储或分发介质上一起放置,不属于本许可协议的范围。

3. 你可以选择应用普通 GNU GPL 而非本许可协议

你可以选择将本许可协议的条款替换为普通 GNU 通用公共许可证的条款。要做到这一点,你必须更改所有引用本许可协议的声明,使它们引用普通 GNU GPL 第 2 版而非本许可协议。(如果出现了比第 2 版新的普通 GPL 版本,则可以指定该版本。)不要对本许可协议中的声明进行任何其他更改。

一旦在给定副本中进行了此更改,该更改对该副本是不可逆的,因此普通 GNU GPL 适用于所有后续副本和衍生作品。

当你想将库的部分代码复制到非库的程序中时,此选项很有用。

4. 你可以复制和分发库的可执行文件

你可以按照上述第 1 和第 2 节中的条款,在目标代码或可执行形式下复制和分发库(或其第 2 节下定义的其部分或衍生作品),但须满足以下条件:随可执行文件一起提供库完整对应机器可读的源代码,该源代码必须按照上述第 1 和第 2 节的条款在通常用于软件交换的媒介上分发。

如果通过提供从指定地点访问副本来分发目标代码,则提供从同一地点访问复制源代码的等效访问权可以满足分发源代码的要求,即使第三方未被强制复制源代码以及目标代码。

5. 包含非衍生作品的程序与库的链接

包含不包含库任何衍生部分、但旨在通过与库链接来与库配合使用的程序的作品称为”使用库的作品”。这样的作品独立存在,不是库的衍生作品,因此不在本许可协议范围内。

但是,将”使用库的作品”与库链接会产生包含库部分的可执行文件,因此是库的衍生作品,而不是”使用库的作品”。因此,此可执行文件受本许可协议约束。第 6 节说明了此类可执行文件的分发条款。

当”使用库的作品”使用库头文件中属于库一部分的材料时,即使源代码不是,作品的目标代码也可能是库的衍生作品。这在作品可以在不链接库的情况下链接的情况下尤其重要,或者如果作品本身就是库时,这种说法是否成立并不精确。

如果此类目标文件仅使用数字参数、数据结构布局和访问器,以及小型宏和小型内联函数(不超过十行),则目标文件的使用不受限制,无论它是否是法律意义上的衍生作品。(但包含此目标代码加上库部分的可执行文件仍属于第 6 节范围。)

否则,如果作品是库的衍生作品,你可以按照第 6 节的条款分发作品的目标代码。任何包含该作品的可执行文件,无论是否直接与库本身链接,都属于第 6 节范围。

6. 可执行文件的分发条款

作为上述各节的例外,你还可以将”使用库的作品”与库链接,以产生包含库部分的作品,并按照你选择的条款分发该作品,但须满足以下条款允许修改作品供客户自己使用以及调试此类修改的反向工程:

你必须在作品的每份副本上附上显著声明,说明作品中使用了库,以及库及其使用受本许可协议约束。你必须随作品附上本许可协议的副本。如果作品在执行时显示版权声明,你还必须在其中包含库的版权声明,以及引用本许可协议副本的说明。此外,你还必须执行以下操作之一:

a) 随作品附上库的完整对应机器可读的源代码,包括作品中使用的任何更改(必须按照上述第 1 和第 2 节分发);并且,如果作品是链接库的可执行文件,则附上完整的机器可读的”使用库的作品”,作为目标代码和/或源代码,以便用户能够修改库,然后在修改后重新链接以生成包含修改后的库的可执行文件。(理解更改库中的定义文件不一定能重新编译应用程序以使用修改后的定义。)或者

b) 使用合适的共享库机制与库链接。合适的机制是指:(1) 在运行时使用用户计算机系统上已存在的库副本,而不是复制库函数到可执行文件中;(2) 如果用户安装了一个版本,只要修改后的版本与制作作品的版本接口兼容,就能正常运行。或者

c) 随作品附上有效期至少三年的书面要约,向同一用户提供上述第 6a 款中指定的材料,收取的费用不超过分发此类材料的成本。或者

d) 如果分发作品是通过从指定地点提供访问副本的方式进行,则从同一地点提供对上述指定材料的等效访问复制。

或者

e) 验证用户是否已收到这些材料的副本或你是否已向该用户发送了副本。

对于可执行文件,”使用库的作品”所需的形式必须包括使用它所需的任何数据和实用程序,以从中重新生成可执行文件。但是,作为特殊例外,分发的材料不需要包含通常与运行可执行文件的主要组件(编译器、内核等)一起分发的任何内容,除非该组件本身随可执行文件一起分发。

可能存在此要求与伴随操作系统的其他专有库不兼容的情况,从而导致你无法在可执行文件中同时使用它们和库。

7. 库的组合库设施

你可以将基于库的作品与本许可协议未涵盖的其他库设施并排放置在单个库中,然后按照本许可协议允许的方式分发此类组合库,但须满足以下两个条件:

a) 随组合库一起分发基于库的相同作品,不与其他库设施组合。这必须按照上述各节的条款分发。

b) 随组合库附上显眼声明,说明作品的一部分是基于库的,并解释在哪里可以找到库的随附未组合形式。

8. 禁止的限制

除本许可协议明确规定外,你不得复制、修改、再许可、链接或分发库。任何其他复制、修改、再许可、链接或分发库的尝试均属无效,并将自动终止你在本许可协议下的权利。但是,根据本许可协议从你处收到副本或权利的各方,只要这些各方保持完全合规,其许可协议就不会终止。

9. 无需签署

你不需要接受本许可协议,因为你尚未签署。但是,库或其衍生作品以外的任何内容都授予你修改或分发库或其衍生作品的许可。如果你不接受本许可协议,这些活动是被禁止的。因此,通过修改或分发库(或基于库的作品),你表示你接受本许可协议及其复制、分发或修改库或基于库的作品的所有条款和条件。

10. 自动许可

每次你分发库(或基于库的作品)时,接收者自动收到来自原始许可方的许可,可以按照本许可协议的条款复制、分发、链接或修改库。你不得对接收者对你在此授予的权利的行使施加任何进一步限制。你可以对此类第三方对本许可协议的合规执行负责。

11. 专利等

如果由于法院判决、专利侵权指控或任何其他原因(不限于专利问题)对你施加了条件(无论是通过法院命令、协议还是其他方式),而这些条件与本许可协议的条款相矛盾,并不能免除你履行本许可协议条款的义务。例如,如果你根据专利许可无法免费再分发库,而本许可协议要求你免费再分发库,那么你唯一能同时满足两者的方式是完全停止分发库。

如果本节的任何部分在任何特定情况下被认定无效或不可执行,则本节的其余部分旨在适用,且本节整体旨在其他情况下适用。

本节的目的不是诱导你侵犯任何专利或其他财产权利索赔,或质疑任何此类索赔的有效性;本节的目的纯属保护我们在公共许可实践中实施的自由软件分发系统的完整性。许多人通过依赖系统的一致应用,向通过该系统分发的各种软件做出了慷慨贡献;作者/捐赠者有权决定是否愿意通过任何其他系统分发软件,被许可人不能强制他们做出这种选择。

本节旨在明确说明本许可协议其余部分的后果。

12. 地理限制

如果分发受某些国家(包括或不限于专利或版权接口)的限制,原始版权持有人可以在本许可协议中添加明确的地理分发限制,排除这些国家,以便仅在未排除的国家中允许分发。在这种情况下,本许可协议将限制条件作为其正文的一部分。

13. FSF 可能发布新版本

自由软件基金会可能随时发布 GNU Lesser General Public License 的修订版和/或新版本。此类新版本在精神上与当前版本相似,但可能在细节上有所不同以解决新问题或顾虑。

每个版本都有一个独特的版本号。如果库指定了适用本许可协议的版本号以及”任何后续版本”,你可以选择遵循该版本或任何后续版本中条款和条件中指定的条款和条件。如果库未指定许可版本号,你可以选择自由软件基金会曾经发布的任何版本。

14. 兼容性问题

如果你希望将这些库的部分合并到其他分发条件与本许可协议不兼容的自由程序中,请写信给作者请求许可。对于由自由软件基金会版权拥有的软件,请写信给自由软件基金会;我们有时会为此做出例外。我们的决定将受到两个目标的指导:保持我们所有自由软件的自由状态,以及促进软件的共享和重用。


免责声明

15. 由于库是免费许可的,因此不提供任何保修

在适用法律允许的范围内,不对库提供任何保修。除非以书面形式另有说明,否则版权 holders 和/或其他各方”按原样”提供库,不提供任何明示或暗示的保证,包括但不限于对适销性和特定用途适用性的暗示保证。库的质量和性能风险由你承担。如果库被证明有缺陷,你承担所有必要维修、修理或更正的费用。

16. 除非适用法律要求或书面同意,否则任何版权持有人或其他方均不对损害承担责任

在适用法律要求或书面同意的情况下,任何版权持有人或任何其他可能以允许的方式修改和/或再分发库的其他方,均不对你因使用或无法使用库(包括但不限于数据丢失、数据不准确或库与你拥有的任何其他软件配合使用导致的损失)而导致的任何一般性、特殊性、偶然性或后果性损害承担责任,即使此类持有人或其他方已被告知此类损害的可能性。


条款和条件结束


如何将本许可证应用到你的新库

如果你开发了一个新库,并希望它对公众尽可能有用,我们建议你将其作为每个人都可以自由再分发和更改的自由软件。你可以通过允许按照这些条款(或可选地按照普通通用公共许可证的条款)进行再分发来实现这一点。

要应用这些条款,请将以下声明附加到库中。将它们附加到每个源文件的开头是最有效地传达免责声明的方式;每个文件至少应有”copyright”行和指向完整声明位置的指针。

<一行给予库名称和简要说明。>
版权所有 (C) <年份> <作者姓名>

本库是自由软件;你可以根据自由软件基金会发布的
GNU Lesser General Public License 第 2.1 版
(或你选择的任何后续版本)的条款重新分发和/或修改它。

本库希望有用,但不提供任何保证;
甚至不包括对适销性或特定用途适用性的暗示保证。
有关更多详细信息,请参阅 GNU Lesser General Public License。

你应该随本库一起收到 GNU Lesser General Public License 的副本;
如果没有,请写信给:
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

你还应提供你的电子和纸质联系方式。

如果你的工作作为程序员,你也应该要求你的雇主(如果有的话)或你的学校(如果有的话)签署库的”版权免责声明”,如果有必要的话。下面是一个示例;更改名称:

Yoyodyne, Inc. 在此放弃与 James Random Hacker 编写的”Frob”库(用于调整旋钮的库)相关的所有版权权益。

<签名> Ty Coon,1990年4月1日 Ty Coon,副总裁

这就是全部内容!


📎 文档导航

← 上一篇 🏠 首页 下一篇 →
变更日志 返回文档首页 移植指南