GCC 运行库例外
声明
这是一份《GCC 运行库例外》的非官方简体中文翻译,它并非由自由软件基金会发布,亦非 GNU GPL 软件的法定发布条款——只有《GCC 运行库例外》的英文原版具有这样的效力。然而,我们希望这份翻译能够帮助中文读者更好地理解《GCC 运行库例外》。
This is an unofficial translation of the GCC Runtime Library Exception into Simplified Chinese. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL— only the original English text of the GCC Runtime Library Exception does that. However, we hope that this translation will help Chinese speakers understand the GCC Runtime Library Exception better.
Translator: FENG Liang fengliang@zhidaofenzi.com http://hutuworm.blogspot.com
正文
版权所有 (C) 2009 Free Software Foundation, Inc.
允许任何人复制和分发该许可证文档的完整拷贝,但是不允许更改。
这 份《GCC 运行库例外》(简称“例外”,Exception)是基于《GNU 通用公共许可证,版本 3》(“GPLv3”,GNU General Public License, version 3)第 7 条的附加许可。它适用于某个给定的文件(也就是“运行库”,Runtime Library),版权所有者在该文件中设置告示,声明该文件受 GPLv3 及本例外管辖。
当你使用 GCC 编译程序时,GCC 可能会将多个部分的 GCC 头文件及运行库与编译后的程序联结在一起。本例外旨在允许编译使用非 GPL (包括专有的)程序,在这里,本例外涵盖了头文件和运行库。
0. 定义
文件是一个“独立模块”(Independent Module),无论其在编译过程(Compilation Process)之后需要运行库(Runtime Library)来执行,抑或利用运行库提供的某个接口,但除了基于该运行库的情况之外。
“GCC” 表示 GNU 编译器集(GNU Compiler Collection)的某个版本,已作或未作修改,受 GNU 通用公共许可证(GPL,GNU General Public License)版本 3(或者某个特定的较新版本)管辖,可选择使用自由软件基金会(FSF)发布的任何后续 GPL 版本。
“GPL 兼容软件”(GPL-compatible Software)是一种符合 GCC 许可证,允许与 GCC 结合进行传播、修改和使用的软件。
“目标代码”(Target Code)指 来自任何编译器的输出结果,无论是针对真实或虚拟的目标处理器体系结构的编译器。它以可执行的形态存在,或适合作为某个汇编器、加载器、链接器以及/或执 行阶段的输入。尽管如此,目标代码不包括任何格式的作为编译器中间表示(intermediate representation)的数据,或用来产生编译器中间表示的数据。
“编译过程”(Compilation Process)将完全在高级层面表示的非中间语言代码转变为目标代码。因此,举例来说,使用源代码生成器和预处理器,则无需认为是编译过程的一部分,因为编译过程可被理解为从生成器或预处理器的输出结果开始。
编译过程是“合格”(Eligible)的,如果它使用 GCC,单独或与其它 GPL 兼容软件一起完成,或者如果它没有使用任何基于 GCC 的软件完成该过程亦可。例如,使用非 GPL 兼容的软件来优化任何 GCC 中间表示则不是一个合格的编译过程。
1. 附加许可授权
你有权传播一份由运行库(Runtime Library)和独立模块(Independent Modules)联结形成的目标代码(Target Code),即使这种传播可能违反 GPLv3 的规定,但条件是所有目标代码经由合格(Eligible)的编译过程(Compilation Process)生成。然后,你可以基于所选择的条款传输这个结合体,与独立模块的许可一致。
2. 不得弱化 GCC 的开放版权(Copyleft)
本例外(Exception)的存在并不意味着任何一般的推定,即第三方软件不受 GCC 许可证中开放版权(copyleft)要求的影响。
GCC RUNTIME LIBRARY EXCEPTION
Version 3, 27 January 2009
Copyright (C) 2009 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
This GCC Runtime Library Exception ("Exception") is an additional permission under section 7 of the GNU General Public License, version 3 ("GPLv3"). It applies to a given file (the "Runtime Library") that bears a notice placed by the copyright holder of the file stating that the file is governed by GPLv3 along with this Exception.
When you use GCC to compile a program, GCC may combine portions of certain GCC header files and runtime libraries with the compiled program. The purpose of this Exception is to allow compilation of non-GPL (including proprietary) programs to use, in this way, the header files and runtime libraries covered by this Exception.
0. Definitions.
A file is an "Independent Module" if it either requires the Runtime Library for execution after a Compilation Process, or makes use of an interface provided by the Runtime Library, but is not otherwise based on the Runtime Library.
"GCC" means a version of the GNU Compiler Collection, with or without modifications, governed by version 3 (or a specified later version) of the GNU General Public License (GPL) with the option of using any subsequent versions published by the FSF.
"GPL-compatible Software" is software whose conditions of propagation, modification and use would permit combination with GCC in accord with the license of GCC.
"Target Code" refers to output from any compiler for a real or virtual target processor architecture, in executable form or suitable for input to an assembler, loader, linker and/or execution phase. Notwithstanding that, Target Code does not include data in any format that is used as a compiler intermediate representation, or used for producing a compiler intermediate representation.
The "Compilation Process" transforms code entirely represented in a high-level, non-intermediate language into Target Code. Thus, for example, use of source code generators and preprocessors need not be considered part of the Compilation Process, since the Compilation Process can be understood as starting with the output of the generators or preprocessors.
A Compilation Process is "Eligible" if it is done using GCC, alone or with other GPL-compatible software, or if it is done without using any work based on GCC. For example, using non-GPL-compatible Software to optimize any GCC intermediate representations would not qualify as an Eligible Compilation Process.
1. Grant of Additional Permission.
You have permission to propagate a work of Target Code formed by combining the Runtime Library with Independent Modules, even if such propagation would otherwise violate the terms of GPLv3, provided that all Target Code was generated by Eligible Compilation Processes. You may then convey such a combination under terms of your choice, consistent with the licensing of the Independent Modules.
2. No Weakening of GCC Copyleft.
The availability of this Exception does not imply any general presumption that third-party software is unaffected by the copyleft requirements of the license of GCC.



0 评论:
发表评论