[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
www/licenses gcc-exception-body.html gcc-except...
From: |
Brett Smith |
Subject: |
www/licenses gcc-exception-body.html gcc-except... |
Date: |
Tue, 27 Jan 2009 18:42:33 +0000 |
CVSROOT: /web/www
Module name: www
Changes by: Brett Smith <brett> 09/01/27 18:42:33
Added files:
licenses : gcc-exception-body.html gcc-exception-faq.html
gcc-exception.html
Log message:
Add GCC exception text and rationale
CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/licenses/gcc-exception-body.html?cvsroot=www&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/www/licenses/gcc-exception-faq.html?cvsroot=www&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/www/licenses/gcc-exception.html?cvsroot=www&rev=1.1
Patches:
Index: gcc-exception-body.html
===================================================================
RCS file: gcc-exception-body.html
diff -N gcc-exception-body.html
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gcc-exception-body.html 27 Jan 2009 18:42:04 -0000 1.1
@@ -0,0 +1,74 @@
+
+<h3 style="text-align: center;">GCC RUNTIME LIBRARY EXCEPTION</h3>
+
+<p style="text-align: center;">Version 3, 27 January 2008</p>
+
+<p>
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ </p><p>Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.</p>
+
+<p>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.</p>
+
+<p>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.
+</p>
+
+<h4><a name="section0"></a>0. Definitions.</h4>
+
+<p>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.</p>
+
+<p>"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.</p>
+
+<p>"GPL-compatible Software" is software whose conditions of
+propagation, modification and use would permit combination with GCC in
+accord with the license of GCC.</p>
+
+<p>"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.</p>
+
+<p>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.</p>
+
+<p>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.</p>
+
+<h4><a name="section1"></a>1. Grant of Additional Permission.</h4>
+
+<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>
+
+<h4><a name="section2"></a>2. No Weakening of GCC Copyleft.</h4>
+
+<p>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.</p>
+
Index: gcc-exception-faq.html
===================================================================
RCS file: gcc-exception-faq.html
diff -N gcc-exception-faq.html
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gcc-exception-faq.html 27 Jan 2009 18:42:04 -0000 1.1
@@ -0,0 +1,296 @@
+
+<!--#include virtual="/server/header.html" -->
+<title>GCC Runtime Library Exception Rationale and FAQ - GNU Project - Free
Software Foundation</title>
+<!--#include virtual="/server/banner.html" -->
+<h2>GCC Runtime Library Exception Rationale and FAQ</h2>
+
+<h3>Introduction</h3>
+
+<p>A year and a half ago, 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—effectively
+creating proprietary extensions to GCC and defating 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">address@hidden</a>.</p>
+
+<h3>How the Exception Works</h3>
+
+<p>The permission you need—to convey the object code from these GCC
+libraries under your own project's license—is primarily contained in
+section 2:</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 "Independent Module," 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 "Compilation Process." The output you get
+from it is called "Target Code," 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 "Eligible," 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
+"under terms of your choice."</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—which is rare—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 "code entirely
+represented in a high-level, non-intermediate language." 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 "suitable for input to an
+assembler, loader, linker and/or execution phase." 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>Why is compiler intermediate representation excluded from the
+definition of "Target Code?"</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>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>
+</div><!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.html" -->
+<div id="footer">
+
+<p>
+Please send FSF & GNU inquiries to
+<a href="mailto:address@hidden"><em>address@hidden</em></a>.
+There are also <a href="/contact/">other ways to contact</a>
+the FSF.
+<br />
+Please send broken links and other corrections or suggestions to
+<a href="mailto:address@hidden"><em>address@hidden</em></a>.
+</p>
+
+<p>
+Please see the
+<a href="/server/standards/README.translations.html">Translations
+README</a> for information on coordinating and submitting
+translations of this article.
+</p>
+
+<p>
+Copyright © 2008 Free Software Foundation, Inc.,
+</p>
+<address>51 Franklin St, Fifth Floor, Boston, MA 02110, USA</address>
+<p>Verbatim copying and distribution of this entire article are
+permitted worldwide, without royalty, in any medium, provided this
+notice, and the copyright notice, are preserved.
+</p>
+
+<p>
+Updated:
+<!-- timestamp start -->
+: 2008/07/25 17:12:07 $
+<!-- timestamp end -->
+</p>
+</div>
+
+<div id="translations">
+<h4>Translations of this page</h4>
+
+<!-- Please keep this list alphabetical by language code. -->
+<!-- Comment what the language is for each type, i.e. de is German. -->
+<!-- Write the language name in its own language (Deutsch) in the text. -->
+<!-- If you add a new language here, please -->
+<!-- advise address@hidden and add it to -->
+<!-- - /home/www/html/server/standards/README.translations.html -->
+<!-- - one of the lists under the section "Translations Underway" -->
+<!-- - if there is a translation team, you also have to add an alias -->
+<!-- to mail.gnu.org:/com/mailer/aliases -->
+<!-- Please also check you have the language code right; see: -->
+<!-- http://www.loc.gov/standards/iso639-2/php/code_list.php -->
+<!-- If the 2-letter ISO 639-1 code is not available, -->
+<!-- use the 3-letter ISO 639-2. -->
+<!-- Please use W3C normative character entities. -->
+
+<ul class="translations-list">
+<!-- English -->
+<li><a href="/licenses/gcc-exception-faq.html">English</a> [en]</li>
+</ul>
+</div>
+</div>
+</body>
+</html>
Index: gcc-exception.html
===================================================================
RCS file: gcc-exception.html
diff -N gcc-exception.html
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gcc-exception.html 27 Jan 2009 18:42:04 -0000 1.1
@@ -0,0 +1,81 @@
+<!--#include virtual="/server/header.html" -->
+
+<title>GCC Runtime Library Exception - GNU Project - Free Software Foundation
(FSF)</title>
+
+<!--#include virtual="/server/banner.html" -->
+
+<h2>GCC Runtime Library Exception</h2>
+
+<p>A <a href="/licenses/gcc-exception-faq.html">rationale document and
+ FAQ</a> is available for this exception.</p>
+
+<hr style="clear: both;" />
+
+<!--#include virtual="/licenses/gcc-exception-body.html" -->
+</div>
+<!--#include virtual="/server/footer.html" -->
+
+
+<div id="footer">
+
+<p>
+Please send FSF & GNU inquiries to
+<a href="mailto:address@hidden"><em>address@hidden</em></a>.
+There are also <a href="/contact/">other ways to contact</a>
+the FSF.
+<br />
+Please send broken links and other corrections or suggestions to
+<a href="mailto:address@hidden"><em>address@hidden</em></a>.
+</p>
+
+<p>
+Please see the
+<a href="/server/standards/README.translations.html">Translations
+README</a> for information on coordinating and submitting
+translations of this article.
+</p>
+
+<p>
+Copyright notice above.</p>
+<address>51 Franklin Street, Fifth Floor, Boston, MA 02110, USA</address>
+
+<p>
+Verbatim copying and distribution of this entire article is
+permitted in any medium without royalty provided this notice is
+preserved.
+</p>
+
+<p>
+Updated:
+<!-- timestamp start -->
+$Date: 2009/01/27 18:42:04 $
+<!-- timestamp end -->
+</p>
+</div>
+
+<div id="translations">
+<h4>Translations of this page</h4>
+
+<!-- Please keep this list alphabetical by language code. -->
+<!-- Comment what the language is for each type, i.e. de is German. -->
+<!-- Write the language name in its own language (Deutsch) in the text. -->
+<!-- If you add a new language here, please -->
+<!-- advise address@hidden and add it to -->
+<!-- - /home/www/html/server/standards/README.translations.html -->
+<!-- - one of the lists under the section "Translations Underway" -->
+<!-- - if there is a translation team, you also have to add an alias -->
+<!-- to mail.gnu.org:/com/mailer/aliases -->
+<!-- Please also check you have the language code right; see: -->
+<!-- http://www.loc.gov/standards/iso639-2/php/code_list.php -->
+<!-- If the 2-letter ISO 639-1 code is not available, -->
+<!-- use the 3-letter ISO 639-2. -->
+<!-- Please use W3C normative character entities. -->
+
+<ul class="translations-list">
+<!-- English -->
+<li><a href="/licenses/gcc-exception.html">English</a> [en]</li>
+</ul>
+</div>
+</div>
+</body>
+</html>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- www/licenses gcc-exception-body.html gcc-except...,
Brett Smith <=