www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www/licenses po/gcc-exception-3.1-faq.translist...


From: GNUN
Subject: www/licenses po/gcc-exception-3.1-faq.translist...
Date: Fri, 30 Nov 2018 22:27:54 -0500 (EST)

CVSROOT:        /web/www
Module name:    www
Changes by:     GNUN <gnun>     18/11/30 22:27:54

Modified files:
        licenses/po    : gcc-exception-3.1-faq.translist 
                         gcc-exception-3.1-faq.zh-cn.po 
Added files:
        licenses       : gcc-exception-3.1-faq.zh-cn.html 
        licenses/po    : gcc-exception-3.1-faq.zh-cn-en.html 

Log message:
        Automatic update by GNUnited Nations.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/licenses/gcc-exception-3.1-faq.zh-cn.html?cvsroot=www&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/www/licenses/po/gcc-exception-3.1-faq.translist?cvsroot=www&r1=1.14&r2=1.15
http://web.cvs.savannah.gnu.org/viewcvs/www/licenses/po/gcc-exception-3.1-faq.zh-cn.po?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/licenses/po/gcc-exception-3.1-faq.zh-cn-en.html?cvsroot=www&rev=1.1

Patches:
Index: po/gcc-exception-3.1-faq.translist
===================================================================
RCS file: /web/www/www/licenses/po/gcc-exception-3.1-faq.translist,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- po/gcc-exception-3.1-faq.translist  24 Sep 2018 12:58:28 -0000      1.14
+++ po/gcc-exception-3.1-faq.translist  1 Dec 2018 03:27:54 -0000       1.15
@@ -8,6 +8,7 @@
 <span dir="ltr"><a lang="ja" hreflang="ja" 
href="/licenses/gcc-exception-3.1-faq.ja.html">日本語</a>&nbsp;[ja]</span> 
&nbsp;
 <span dir="ltr"><a lang="pt-br" hreflang="pt-br" 
href="/licenses/gcc-exception-3.1-faq.pt-br.html">português&nbsp;do&nbsp;Brasil</a>&nbsp;[pt-br]</span>
 &nbsp;
 <span dir="ltr"><a lang="ru" hreflang="ru" 
href="/licenses/gcc-exception-3.1-faq.ru.html">русский</a>&nbsp;[ru]</span>
 &nbsp;
+<span dir="ltr"><a lang="zh-cn" hreflang="zh-cn" 
href="/licenses/gcc-exception-3.1-faq.zh-cn.html">简体中文</a>&nbsp;[zh-cn]</span>
 &nbsp;
 </p>
 </div>' -->
 <link rel="alternate" type="text/html" 
href="/licenses/gcc-exception-3.1-faq.html" hreflang="x-default" />
@@ -17,4 +18,5 @@
 <link rel="alternate" type="text/html" lang="ja" hreflang="ja" 
href="/licenses/gcc-exception-3.1-faq.ja.html" title="日本語" />
 <link rel="alternate" type="text/html" lang="pt-br" hreflang="pt-br" 
href="/licenses/gcc-exception-3.1-faq.pt-br.html" title="português do Brasil" 
/>
 <link rel="alternate" type="text/html" lang="ru" hreflang="ru" 
href="/licenses/gcc-exception-3.1-faq.ru.html" title="русский" />
+<link rel="alternate" type="text/html" lang="zh-cn" hreflang="zh-cn" 
href="/licenses/gcc-exception-3.1-faq.zh-cn.html" title="简体中文" />
 <!-- end translist file -->

Index: po/gcc-exception-3.1-faq.zh-cn.po
===================================================================
RCS file: /web/www/www/licenses/po/gcc-exception-3.1-faq.zh-cn.po,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- po/gcc-exception-3.1-faq.zh-cn.po   1 Dec 2018 03:06:17 -0000       1.1
+++ po/gcc-exception-3.1-faq.zh-cn.po   1 Dec 2018 03:27:54 -0000       1.2
@@ -13,7 +13,7 @@
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
+"Content-Transfer-Encoding: 8bit\n"
 
 #. type: Content of: <title>
 msgid ""

Index: gcc-exception-3.1-faq.zh-cn.html
===================================================================
RCS file: gcc-exception-3.1-faq.zh-cn.html
diff -N gcc-exception-3.1-faq.zh-cn.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gcc-exception-3.1-faq.zh-cn.html    1 Dec 2018 03:27:54 -0000       1.1
@@ -0,0 +1,165 @@
+<!--#set var="ENGLISH_PAGE" value="/licenses/gcc-exception-3.1-faq.en.html" -->
+
+<!--#include virtual="/server/header.zh-cn.html" -->
+<!-- Parent-Version: 1.77 -->
+
+<!-- This file is automatically generated by GNUnited Nations! -->
+<title>GCC运行库例外的理由和常见问题解答 - GNU工程 - 
自由软件基金会</title>
+
+<!--#include virtual="/licenses/po/gcc-exception-3.1-faq.translist" -->
+<!--#include virtual="/server/banner.zh-cn.html" -->
+<h2>GCC运行库例外的理由和常见问题解答</h2>
+
+<h3>引言</h3>
+
+<p>2007å¹´6月29日,自由软件基金会发布了GPLv3。它马上被15个GNU项目采纳,在随后的å‡
 ä¸ªæœˆå†…有更多的项目切换到了该许可证。GCC的大多数代ç 
åœ¨4.2.2版本发布时都采用了新的许可证,现在我们正在对此进行收尾。</p>
+
+<p>有些伴随GCC的软件库的许可证还没有变更。这些软件库自动被GCC产生的目æ
 ‡ä»£ç ä½¿ç”¨ã€‚因此,如果只简单允许这些库按ç…
§GPL发布,那么GCC产生的所有目标代码都将需要按照同æ 
·çš„条款发布。然而,FSF很久以前就决定允许开发者
使用GCC的软件库编译任何程序,无
论该程序使用何种许可证。开发非自由软件对社会不利,而且我们也没有义务使之更容易。我们å
…è®¸è¿™æ ·åšæ˜¯å› ä¸ºç¦æ­¢å®ƒçœ‹æ¥æ˜¯é€‚得其反,另外的原因是因
为使用了å…
¶ä»–小软件库而限制GCC的使用看来是抓了芝麻丢了西瓜。</p>
+
+<p>所以,这些软件库一直是许可证例外,该例外å…
è®¸äººä»¬å°†ä½¿ç”¨GCC产生的目标代ç 
ç”¨ä»»ä½•è®¸å¯è¯å‘布。我们现在将这些软件库的许可证改到GPLv3,并更新这些例外。我们的基本政策没有变化;新的许可证还是å
…è®¸æŒ‰ç…
§ä»¥å‰çš„方式使用GCC。不过,我们决定利用这个机会更新例外达成3个目的:</p>
+
+<ul>
+<li><p>利用GPLv3的新条款。GPLv3有好几
个有利于所有软件的新条款。这其中包
括第7节,它构建了一个提供许可证例外的框架。为了使GCC能够最大范围地从GPLv3获益,我们需要使用第7节的语言考虑这些新条款并更新例外。</p></li>
+<li><p>奠定GCC插件架构的基础。长期以来,GCC的开发者
一直在考虑为编译器添加
一个插件框架。这会让大家为GCC项目做贡献变得更容易,并且也会åŠ
 é€ŸGCC新编译技术的开发。然而,å…
¶ä¸­ä¹Ÿå­˜åœ¨ç€å¯¹ä¸æ‹©æ‰‹æ®µçš„开发者的担
心,他们写的插件可能会调用专有软件改变编译后的代ç 
&mdash;这实际上就是给GCC添加了专有的扩展并挫败GPL的目æ 
‡ã€‚更新后的例外会防止这种滥用,让GCC团队能够开始展望插件开发。</p></li>
+<li><p>促使GCC代ç 
çš„例外整体上一致。经年累月,随着需要许可证例外的文件添åŠ
 åˆ°GCC之中,我们不断审查和更新我们的用词以澄清
这些例外并涵盖新的问题。由此导致GCC中现在有许多不同的例外文字,它们提供的基本许可都是一æ
 
·çš„。现在,所有这些文件都可以使用我们拟定好的单一新例外文字,这使代ç
 çš„法律审核变得更容易。</p></li>
+</ul>
+
+<p>正如GPLv3,我们草拟此文时努力听取了多方用户的意见,并对这些意见做出了适当的处理。总而言之,我们为此花费了è¶
…
过一年的时间。自由软件基金会和GCC执行委员会感谢软件自由法律中心的Richard
+Fontana、Bradley Kuhn和Karen
+Sandler,感谢他们对此例外所做的所有辛勤努力和协助。这些更新会强化GCC社区,我们期å¾
…它为编译器的开发打开新的篇章。</p>
+
+<p>GCC对开发者是如此å…
³é”®ï¼Œæˆ‘们料想他们对此更改会有问题,我们希望这些问题都有应对。下面,我们列举了用户可能会有的æ‹
…忧。如果你关于此例外的问题没有列出,请随时通过<a
+href="mailto:address@hidden";>&lt;address@hidden&gt;</a>联系我们。</p>
+
+<h3>例外是怎么回事</h3>
+
+<p>你需要的许可&mdash;用GCC库把代码转换成按照你
的许可证发布的目标代码&mdash;主要在第1节中:</p>
+
+<blockquote>
+  <p>你有权传播由独立模块和运行库组合而成的目标代ç 
ä½œå“ï¼Œå³ä½¿è¯¥ä¼ æ’­ä»Žå…
¶ä»–方面来看可能违反了GPLv3的条款,前提是所有的目标代ç 
éƒ½æ˜¯ç»ç”±åˆæ³•çš„编译过程产生的。那么你
可以为该组合使用你
选择的许可证条款,只要它和独立模块的许可证一致。</p>
+</blockquote>
+
+<p>本节使用了很多术语,这些术语的特定含义和例外如何操作不可分割。本节详解这些术语和常见场景的å
…³ç³»ã€‚</p>
+
+<p>当你编写软件时,软件就包含了一系列源代ç 
æ–‡ä»¶ã€‚如果一个文件不包含GCC库里的源代ç 
ï¼Œé‚£ä¹ˆè¿™ä¸ªæ–‡ä»¶å°±æ˜¯ä¸€ä¸ª&ldquo;独立模块&rdquo;。</p>
+
+<p>当你编译这些源代ç 
æ–‡ä»¶æ—¶ï¼Œå®ƒä»¬é€šå¸¸ä¼šç»åŽ†ä¸€ç³»åˆ—步骤:源代ç 
ç”Ÿæˆã€é¢„处理、编译成低级代码、汇编和连接。æ 
¹æ®æ‰€ç”¨çš„语言和软件编写的方式,有些项目可能没有以上所有的步骤,但是它们总会按ç
…§è¿™ä¸ªé¡ºåºæ‰§è¡Œï¼Œä½¿ç”¨GCC的人会按ç…
§è¿™ä¸ªæ­¥éª¤ä»Žé«˜çº§è¯­è¨€ç¼–译到诸如汇编或Java
+bytecode<sup><a
+href="#TransNote1">1</a></sup>。在这个阶段,GCC把你的代ç 
å’ŒGCC库合并或连接起来。我们称之为&ldquo;编译过程。只要此时的输出不是编译器还要用的过渡代ç
 ï¼Œä¹Ÿä¸æ˜¯ç¼–译器要输出的过渡代ç 
ï¼Œ&rdquo;此时的输出就叫做&ldquo;目标代码。&rdquo;</p>
+
+<p>要想利用本许可,产生目标代码的编译过程必
é¡»&ldquo;合法&rdquo;,就是说其中没有引入和GCC以及GPL不å…
¼å®¹çš„软件。重要的一点是编译过程从你
把<em>任何</em>高级语言代码输入给GCC就开始,一旦输出了目æ 
‡ä»£ç å°±ç»“束。因此,只要GCC没有输出过渡代码,即使你用å…
¶ä»–GPL不兼容的汇编器、连接器或者高级语言产生工å…
·å’ŒGCC一起工作,你的编译过程还可以是合法的:这些GPL不å…
¼å®¹å·¥å…·æŒ‰ç…§æˆ‘们的定义不算参与编译过程。只有一个地方你
不能使用这些GPL不兼容的软件,这就是当GCC在进行æ 
¸å¿ƒç¼–译工作的时候。</p>
+
+<p>所以,如果你用了GCC,不管有没有GPL不å…
¼å®¹çš„软件,编译过程都可以是合法的。如果你只用了GPLå…
¼å®¹çš„编译工å…
·ï¼Œç¼–译过程也是合法的。(即使使用不同的编译器,人们也常常会为GNU/Linux软件连接GCC库。)不过,如果ä½
 åœ¨æŠŠé«˜çº§è¯­è¨€ä»£ç è½¬æ¢æˆä½Žçº§è¯­è¨€ä»£ç çš„过程中用了GCC加
上GPL不兼容的工å…
·ï¼Œé‚£ä¹ˆè¿™å°±<em>不是</em>一个合法的编译过程。比如,你
使用GCC加上一个专有的插件就是这么一个非法编译过程。</p>
+
+<p>只要编译过程是合法的,那么你有权为GCC产生的目标代ç 
çš„发布&ldquo;选择你的条款。&rdquo;</p>
+
+<p>如果你在编译过程中使用了GPL不兼容的工具,那么你
不能使用这项权利。由于GCC产生的目标代ç 
éƒ½æ¥è‡ªGPL软件库,所以如果要发布这些目标代ç 
å°±è¦éµå¾ªGPL的条款。你不能使用GCC开发你自己的GPL不å…
¼å®¹è½¯ä»¶ã€‚</p>
+
+<h3>常见问题解答</h3>
+
+<dl>
+<dt>我使用的是GCC的标准发布版(比如由FSF提供的,或者
是操作系统自带的),我用它编译GPL不å…
¼å®¹è½¯ä»¶ã€‚例外的更改对我有什么影响?</dt>
+
+<dd><p>此次更改不会影响你。除非你把GCC配置成输出过渡代ç 
&mdash;这种情况很少见&mdash;新的例外是要确保你这æ 
·åšæ—¶æ²¡æœ‰è¿åè®¸å¯è¯ï¼Œæ­£å¦‚老的例外一样。</p></dd>
+
+<dt>这个变更会影响哪些人?</dt>
+
+<dd><p>目前使用GCC的人应该不会受到影响。å…
¶ä¸­å”¯ä¸€çš„政策性修改是为了防止开发者
在<em>将来</em>对GCC的功能做出某些修改。FSF一直和GCC开发者
紧密合作来了解人们目前使用GCC的方式,以确保他们在新的例外条款下仍然能够继续按ç
…§å·²æœ‰çš„方式使用GCC。</p></dd>
+
+<dt>我使用GCC加上专有的预处理工具/源代码生成工å…
·æ¥åšç¼–译。我可以利用这个例外吗?</dt>
+
+<dd><p>是的。编译过程开始于任何&ldquo;完å…
¨ç”±é«˜çº§è¯­è¨€è¡¨è¾¾çš„代码,而不是过渡代码语言。&rdquo;这包
括由预处理工具或其他专有软件生成的代码。这æ 
·ï¼Œç¼–译过程不包含任何专有软件;它是合法的,例外对这æ 
·çš„程序适用。</p></dd>
+
+<dt>我使用GCC加
上专有的汇编器/连接器做编译。我还可以利用这个例外吗?</dt>
+
+<dd><p>是的。编译过程当编译器产生目标代码时结束,这个包
括输出&ldquo;适用于汇编器、载入器、连接器/运行程序的输å…
¥æ–‡ä»¶ã€‚&rdquo;换句话说,在这种情
况下编译过程在GCC输出汇编代码或未连接的目æ 
‡æ–‡ä»¶æ—¶å·²ç»ç»“束,所以其中不包
含任何专有软件的参与。它是合法的,例外对这æ 
·çš„程序适用。</p></dd>
+
+<dt>我使用GCC编译程序的一部分,使用专有软件编译程序的å…
¶ä½™éƒ¨åˆ†ã€‚然后这些部分在汇编或连接阶段合在一起。我还能利用这个例外吗?</dt>
+
+<dd><p>是的。在这种情况下,每个独立模块都是按ç…
§åˆæ³•çš„编译过程变成目标代ç 
çš„。尽管不同模块经历了不同的过程,该例外还是适用于这个程序的。</p></dd>
+
+<dt>我使用不包
含任何GCC成分的专有编译器编译我的程序,然后将它和libstdc++连接起来。我的程序本身不åŒ
…含任何像用GCC编译的程序那æ 
·çš„运行库(libgcc)。我还能利用这个例外吗?</dt>
+
+<dd><p>是的。虽然该例外最常见的场景可能是用于把libgcc和GCC编译的目æ
 ‡ä»£ç 
åˆåœ¨ä¸€èµ·ï¼Œä½†æ˜¯GPL和GCC运行库例外都不区分静态连接、动态连接以及å
…¶ä»–合成方式。该例外许可你可以用,同样的条款,无论你
采用了哪一个合成方式。</p>
+
+<p>请注意,如果你要发布的是独立的libstdc++库,那么你
需要按照GPL的条款来发布。比如,如果你的库是按照目标代ç 
çš„形式发布的,那么你
需要使用由GPLv3第6节里规定的方法之一来提供源代ç 
ã€‚但是只要你
的程序适用GCC运行库例外,GPL条款就不会扩展到你
的程序。</p></dd>
+
+<dt>为什么编译器过渡代码不在&ldquo;目标代ç 
&rdquo;的定义之内?</dt>
+
+<dd><p>当我们第一次考虑给GCC添加插件架构时,我们非常担
心有人会写一个插件来简单把GCC的过渡代码、底层编译数据æ 
¼å¼ä¿å­˜åˆ°ç£ç›˜ã€‚这样的话,å…
¶ä»–软件就可以不经GCC而优化或改进这些代ç 
ã€‚我们可能很难争辩说这些程序应该遵循GPL的copyleft条款,所以我们想要阻止这种活动。</p>
+
+<p>我们的做法是把这些输出排除在目标代码之外。正因
为如此,即使有人写了保存中间信息的插件,任何在GCC输出目æ
 ‡ä»£ç 
ä¹‹å‰ä¿®æ”¹è¿™äº›ä¿¡æ¯çš„程序也都参与到了编译过程之中。如果该程序是专有软件,那么例外就不适用于它编译的软件;GCC最后输出的目æ
 ‡ä»£ç å°±å¿…须按照GPL的条款来发布。</p></dd>
+
+<dt>如果我写了一些汇编语言的代码,我是否还可以把它和å…
¶ä»–正常编译的目标代码合在一起,并利用该例外?</dt>
+
+<dd><p>是的,只要这些目标代ç 
æ˜¯ç»ç”±åˆæ³•ç¼–译过程产生的。在汇编器里跑手写的汇编代ç 
å°±æ˜¯ä¸€ä¸ªç¼–译过程,因为它把让人编写代ç 
çš„[a]非过渡性语言[]的代码转换成...目标代码。&rdquo;</p></dd>
+
+<dt>GCC运行库例外包含哪些库?</dt>
+
+<dd><p>GCC运行库例外涵盖了所有的许可证说明里陈述了例外适用的文件。这åŒ
…括libgcc、libstdc++、libfortran、libgomp、libdecnumber、libgcov以及å…
¶ä»–å’ŒGCC一起发布的库。</p></dd>
+
+<dt>Classpath会使用该例外吗?</dt>
+
+<dd><p>尽管Classpath当前的例外起着相似的作用,我们这次也还没有更新它。å›
 ä¸ºè‡ªç”±è½¯ä»¶Java社区的最新发展,Classpath许可证政策的优å…
ˆçº§å’Œå…¶ä»–GCC库有所不同,我们会单独评估。</p></dd></dl>
+<div class="translators-notes">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
+<h3>译注</h3>
+<ol>
+<li id="TransNote1">Java
+bytecode:这是Java语言编译后的中间语言,就像汇编是C/C++编译后的中间语言一æ
 ·ã€‚</li>
+</ol></div>
+</div>
+
+<!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.zh-cn.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>请将有å…
³è‡ªç”±è½¯ä»¶åŸºé‡‘会(FSF)&amp;GNU的一般性问题发送到<a
+href="mailto:address@hidden";>&lt;address@hidden&gt;</a>。也可以通过<a
+href="/contact/">å…
¶ä»–联系方法</a>联系自由软件基金会(FSF)。请将无效链接,å…
¶ä»–错误或建议发送给<a
+href="mailto:address@hidden";>&lt;address@hidden&gt;</a>。</p>
+
+<p>
+<!-- TRANSLATORS: Ignore the original text in this paragraph,
+        replace it with the translation of these two:
+
+        We work hard and do our best to provide accurate, good quality
+        translations.  However, we are not exempt from imperfection.
+        Please send your comments and general suggestions in this regard
+        to <a href="mailto:address@hidden";>
+
+        &lt;address@hidden&gt;</a>.</p>
+
+        <p>For information on coordinating and submitting translations of
+        our web pages, see <a
+        href="/server/standards/README.translations.html">Translations
+        README</a>. -->
+若您想翻译本文,请参看<a 
href="/server/standards/README.translations.html">翻译须知</a>。</p>
+</div>
+
+<p>Copyright &copy; 2014 Free Software Foundation, Inc.</p>
+
+<p>本页面使用<a rel="license"
+href="http://creativecommons.org/licenses/by-nd/3.0/us/";>Creative Commons
+Attribution-NoDerivs 3.0 United States License</a>授权。</p>
+
+<!--#include virtual="/server/bottom-notes.zh-cn.html" -->
+<div class="translators-credits">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
+<b>翻译团队</b>:<a rel="team"
+href="https://savannah.gnu.org/projects/www-zh-cn/";>&lt;CTT&gt;</a>,2018。</div>
+
+<p class="unprintable"><!-- timestamp start -->
+最后更新:
+
+$Date: 2018/12/01 03:27:54 $
+
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>

Index: po/gcc-exception-3.1-faq.zh-cn-en.html
===================================================================
RCS file: po/gcc-exception-3.1-faq.zh-cn-en.html
diff -N po/gcc-exception-3.1-faq.zh-cn-en.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ po/gcc-exception-3.1-faq.zh-cn-en.html      1 Dec 2018 03:27:54 -0000       
1.1
@@ -0,0 +1,321 @@
+<!--#include virtual="/server/header.html" -->
+<!-- Parent-Version: 1.77 -->
+<title>GCC Runtime Library Exception Rationale and FAQ
+- GNU Project - Free Software Foundation</title>
+<!--#include virtual="/licenses/po/gcc-exception-3.1-faq.translist" -->
+<!--#include virtual="/server/banner.html" -->
+<h2>GCC Runtime Library Exception Rationale and FAQ</h2>
+
+<h3>Introduction</h3>
+
+<p>On June 29th, 2007 the Free Software Foundation released GPLv3.  It
+was immediately adopted by fifteen GNU projects, and more made the
+switch in the following months.  Most of the GCC codebase migrated to
+the new license in the 4.2.2 release, and now we are preparing to
+finish that process.</p>
+
+<p>The licenses for some libraries that accompany GCC have not been
+changed yet.  These libraries are automatically used by the object
+code that GCC produces.  Because of that, if these libraries were
+simply distributed only under the terms of the GPL, all the object
+code that GCC produces would have to be distributed under the same
+terms.  However, the FSF decided long ago to allow developers to use
+GCC's libraries to compile any program, regardless of its license.
+Developing nonfree software is not good for society, and we have no
+obligation to make it easier.  We decided to permit this because
+forbidding it seemed likely to backfire, and because using small
+libraries to limit the use of GCC seemed like the tail wagging the
+dog.</p>
+
+<p>Therefore, these libraries have always had license exceptions that
+allow people to distribute the object code GCC produces under any
+license.  We are now moving these libraries to GPLv3 and updating
+their exceptions.  Our fundamental policy has not changed; the new
+license is meant to permit all the uses of GCC that were permitted
+before.  However, we have decided to use this opportunity to update
+the exception to accomplish three goals:</p>
+
+<ul>
+<li><p>Take advantage of GPLv3's new provisions.  GPLv3 features a number
+of new terms which benefit all software.  These include section 7,
+which establishes a framework for providing license exceptions.  In
+order for GCC to get the most benefit from GPLv3, we need to update
+the exception to take these new terms into account, and work within
+the parameters of section 7.</p></li>
+<li><p>Lay the groundwork for a plugin infrastructure in GCC.  For a while
+now, the GCC developers have considered adding a plugin framework to
+the compiler.  This would make it easier for others to contribute to
+the project, and accelerate the development of new compilation
+techniques for GCC.  However, there have also been concerns that
+unscrupulous developers could write plugins that called out to
+proprietary software to transform the compiled code&mdash;effectively
+creating proprietary extensions to GCC and defeating the purpose of
+the GPL.  The updated exception prevents such abuse, enabling the
+GCC team to look forward to plugin developments.</p></li>
+<li><p>Make exceptions throughout the GCC code base consistent.  Over the
+years, as new files were added to GCC that needed to carry this
+license exception, we reviewed and updated the language to help
+clarify it and address new concerns.  As a result, there are now
+many different exception texts in GCC that provide the same basic
+permissions.  Now all of those files will be able to use the single
+new exception text that we've prepared, making it easier to perform
+legal reviews on the code.</p></li>
+</ul>
+
+<p>As with GPLv3, we worked hard to listen to various users' concerns
+while we drafted this, and address them appropriately.  All told, we
+have spent more than a year on this process.  The Free Software
+Foundation and the GCC Steering Committee would like to thank Richard
+Fontana, Bradley Kuhn, and Karen Sandler at the Software Freedom Law
+Center for all their hard work and assistance with the exception.  The
+changes here will strengthen the GCC community, and we look forward to
+the compiler developments it will enable.</p>
+
+<p>Because GCC is such a crucial part of developers' lives, we're
+expecting lots of questions about these changes, and we want to make
+sure that they're addressed.  Below we've addressed specific concerns
+that we expect users will have.  If you have questions about the new
+exception that aren't mentioned here, please feel free to contact us
+at <a href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.</p>
+
+<h3>How the Exception Works</h3>
+
+<p>The permission you need&mdash;to convey the object code from these GCC
+libraries under your own project's license&mdash;is primarily contained in
+section 1:</p>
+
+<blockquote>
+  <p>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.</p>
+</blockquote>
+
+<p>This section uses many defined terms, and their specific meanings are
+integral to how the exception works.  This section looks at how these
+terms relate to common scenarios.</p>
+
+<p>When you write your software, it consists of a set of source code
+files.  Each file is an &ldquo;Independent Module,&rdquo; as long as
+it doesn't contain any source from the GCC libraries.</p>
+
+<p>When you compile those source code files, they usually go through a
+series of steps: source code generation, preprocessing, compilation to
+low-level code, assembling, and linking.  Not all projects follow all
+these steps, depending on what language you're using and how it's
+written, but they'll always go in this order, and everyone using GCC
+will go through the process of compiling high-level code into some
+low-level language such as assembly code or Java bytecode.  This phase
+is when GCC combines or links your own code with code from the GCC
+libraries.  We call it the &ldquo;Compilation Process.&rdquo; The
+output you get from it is called &ldquo;Target Code,&rdquo; as long as
+that output is not used as compiler intermediate representation, or to
+create such an intermediate representation.</p>
+
+<p>In order to take advantage of this permission, the Compilation
+Process that you use to create Target Code has to be
+&ldquo;Eligible,&rdquo; which means that it does not involve both GCC
+and GPL-incompatible software.  It's important to remember that the
+Compilation Process starts when you feed <em>any</em> high-level code
+to GCC, and ends as soon as it generates anything that can be
+considered Target Code.  Because of that, as long as GCC isn't writing
+out intermediate representation, your Compilation Process can still be
+Eligible even if you use GCC in conjunction with GPL-incompatible
+assemblers, linkers, or high-level source generators: those programs
+aren't involved in the Compilation Process as it's defined here.  The
+only place you can't use GPL-incompatible software with GCC is when
+it's performing the core compilation work.</p>
+
+<p>So, if you use GCC, with or without GPL-compatible enhancements, that
+would be an Eligible Compilation Process.  If you only use
+GPL-incompatible compiler tools, that would be an Eligible Compilation
+Process as well.  (It's not uncommon for people who build software for
+GNU/Linux to link against the GCC libraries even if they're using a
+different compiler.)  However, if you used GCC in conjunction with
+GPL-incompatible software during the process of transforming
+high-level code to low-level code, that would <em>not</em> be an Eligible
+Compilation Process.  This would happen if, for example, you used GCC
+with a proprietary plugin.</p>
+
+<p>As long as you use an Eligible Compilation Process, then you have
+permission to take the Target Code that GCC generates and propagate it
+&ldquo;under terms of your choice.&rdquo;</p>
+
+<p>If you did use GPL-incompatible software in conjunction with GCC
+during the Compilation Process, you would not be able to take
+advantage of this permission.  Since all of the object code that GCC
+generates is derived from these GPLed libraries, that means you would
+be required to follow the terms of the GPL when propagating any of
+that object code.  You could not use GCC to develop your own
+GPL-incompatible software.</p>
+
+<h3>Frequently Asked Questions</h3>
+
+<dl>
+<dt>I am using a standard release of GCC (such as one provided by the
+FSF, or with my operating system) to compile GPL-incompatible
+software.  How does this change affect me?</dt>
+
+<dd><p>It should not affect you at all.  Unless you've configured GCC
+to output intermediate representation&mdash;which is rare&mdash;the
+new exception is designed to ensure that you have no license
+obligations when you do this, just as the old exceptions
+were.</p></dd>
+
+<dt>Who does this change affect?</dt>
+
+<dd><p>Nobody who is currently using GCC should be affected by this change.
+The only changes in policy are meant to prevent developers from making
+certain modifications to GCC that <em>will</em> become feasible in the future.
+The FSF has been working closely with GCC developers to learn more about
+the many different ways people use GCC today, and ensure that they will all
+be able to continue those activities under the new exception.</p></dd>
+
+<dt>I use GCC in conjunction with proprietary preprocessors and/or source
+generators to compile my program.  Can I still take advantage of the
+exception?</dt>
+
+<dd><p>Yes.  The Compilation Process can start with any &ldquo;code
+entirely represented in a high-level, non-intermediate
+language.&rdquo; This includes code generated by a preprocessor or
+other proprietary software.  As such, the Compilation Process in this
+case does not involve any proprietary software; it qualifies as
+Eligible, and the exception is available for this program.</p></dd>
+
+<dt>I use GCC in conjunction with proprietary assemblers and/or linkers to
+compile my program.  Can I still take advantage of the exception?</dt>
+
+<dd><p>Yes.  The Compilation Process ends when the compiler generates
+Target Code, which includes output that is &ldquo;suitable for input
+to an assembler, loader, linker and/or execution phase.&rdquo; In
+other words, the Compilation Process in this case is over when you
+have assembly code or unlinked object files from GCC, and so it does
+not involve any proprietary software.  It qualifies as Eligible, and
+the exception is thus available for this program.</p></dd>
+
+<dt>I use GCC to compile parts of my program, and a proprietary
+compiler to compile other parts.  The pieces are combined afterward,
+during assembler or linking phases.  Can I still take advantage of the
+exception?</dt>
+
+<dd><p>Yes.  In this case, each Independent Module is turned into Target Code
+through an Eligible Compilation Process.  Even though different modules
+will go through different processes, the exception is still available
+for this program.</p></dd>
+
+<dt>I use a proprietary compiler toolchain without any parts of GCC to
+compile my program, and link it with libstdc++.  My program itself
+does not include any runtime library code the same way that
+GCC-compiled programs include libgcc.  Can I still take advantage of
+the exception?</dt>
+
+<dd><p>Yes.  While combining libgcc with GCC-compiled object code is
+probably the most common way the exception is used, neither the GPL
+nor the GCC Runtime Library Exception distinguish between static
+linking, dynamic linking, and other methods for combining code in
+their conditions.  The same permissions are available to you, under
+the same terms, no matter which method you use.</p>
+
+<p>Note that if you distribute libstdc++ as an independent library,
+you will need to follow the terms of the GPL when doing so.  For
+example, if you distribute the library itself in object code form, you
+will need to provide source code to your recipients using one of the
+methods listed in section 6 of GPLv3.  But as long as you are eligible
+to take advantage of the GCC Runtime Library Exception's permissions
+for your own program, the GPL's terms do not extend to it.</p></dd>
+
+<dt>Why is compiler intermediate representation excluded from the
+definition of &ldquo;Target Code?&rdquo;</dt>
+
+<dd><p>When we first considered adding a plugin infrastructure to GCC, we
+were deeply concerned about the possibility that someone would write a
+plugin that would merely save GCC's internal, low-level compilation
+data structures to disk.  With that done, other software would be able
+to optimize or otherwise improve that code without being directly
+connected to GCC.  It may have been difficult for us to argue that
+those programs should be subject to the GPL's copyleft, so we wanted
+to discourage these sorts of arrangements.</p>
+
+<p>We do that by excluding such output from the definition of Target
+Code.  Because of this, even if someone writes a plugin that saves
+this information to disk, any programs that change the structures
+before GCC writes out Target Code will be involved in the Compilation
+Process.  If that program is proprietary, the exception will not be
+available to any software compiled with it; the object code that GCC
+ultimately creates will have to be distributed under the terms of the
+GPL.</p></dd>
+
+<dt>If I write some code in assembly language, can I combine that with
+other object code compiled normally, and still take advantage of the
+exception?</dt>
+
+<dd><p>Yes, as long as all of the object code was compiled through an
+Eligible Compilation Process.  The process of running hand-written
+assembly through an assembler is a Compilation Process, since it
+&ldquo;transforms code entirely represented in [a] non-intermediate
+language[] designed for human-written code... into Target
+Code.&rdquo;</p></dd>
+
+<dt>What libraries does the GCC Runtime Library Exception cover?</dt>
+
+<dd><p>The GCC Runtime Library Exception covers any file that has a
+notice in its license headers stating that the exception applies.
+This includes libgcc, libstdc++, libfortran, libgomp, libdecnumber,
+libgcov, and other libraries distributed with GCC.</p></dd>
+
+<dt>Will Classpath use this new exception?</dt>
+
+<dd><p>Even though Classpath's current exception serves a similar purpose,
+we are not updating it at this time.  Because of recent developments
+in the free software Java community, the priorities for Classpath's
+licensing policies are different from other GCC libraries, and we are
+evaluating it separately.</p></dd></dl>
+</div><!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>Please send general FSF &amp; GNU inquiries to <a
+href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.  There are also <a
+href="/contact/">other ways to contact</a> the FSF.  Broken links and other
+corrections or suggestions can be sent to <a
+href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.</p>
+
+<p><!-- TRANSLATORS: Ignore the original text in this paragraph,
+        replace it with the translation of these two:
+
+        We work hard and do our best to provide accurate, good quality
+        translations.  However, we are not exempt from imperfection.
+        Please send your comments and general suggestions in this regard
+        to <a href="mailto:address@hidden";>
+        &lt;address@hidden&gt;</a>.</p>
+
+        <p>For information on coordinating and submitting translations of
+        our web pages, see <a
+        href="/server/standards/README.translations.html">Translations
+        README</a>. -->
+Please see the <a
+href="/server/standards/README.translations.html">Translations README</a> for
+information on coordinating and submitting translations of this article.</p>
+</div>
+
+<p>Copyright &copy; 2014 Free Software Foundation, Inc.</p>
+
+<p>This page is licensed under a <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/3.0/us/";>Creative
+Commons Attribution-NoDerivs 3.0 United States License</a>.</p>
+
+<!--#include virtual="/server/bottom-notes.html" -->
+
+<p class="unprintable">Updated:
+<!-- timestamp start -->
+$Date: 2018/12/01 03:27:54 $
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]