Rework pasted text into a coherent description of system library exception.
This required writing a lot of additional text to make it work. I also added my cheeky rule of thumb. :)
This commit is contained in:
parent
f65ecb47a6
commit
0f3bc95c51
1 changed files with 40 additions and 21 deletions
61
gpl-lgpl.tex
61
gpl-lgpl.tex
|
@ -2463,30 +2463,49 @@ never be required to provide more than that. One always has the right to
|
||||||
modify a source code work by deleting any part of it, and there can be no
|
modify a source code work by deleting any part of it, and there can be no
|
||||||
requirement that free software source code be a whole functioning program.
|
requirement that free software source code be a whole functioning program.
|
||||||
|
|
||||||
% FIXME: Standard Interface
|
\section{The System Library Exception}
|
||||||
|
|
||||||
% FIXME: System Libraries: it's in a different place and changed in later drafts
|
The previous section skipped over one part of the CCS definition, the
|
||||||
|
so-called system library exception. The ``System Libraries'' definition (and
|
||||||
|
the ``Standard Interface'' and ``Major Component'' definitions, which it
|
||||||
|
includes) are designed as part
|
||||||
|
|
||||||
The final paragraph of section 1 revises the exception to the source code
|
to permit certain distribution arrangements that are considered reasonable by
|
||||||
distribution requirement in GPLv2 that we have sometimes called the system
|
copyleft advocates. The system library exception is designed to allow
|
||||||
library exception. This exception has been read to prohibit certain
|
copylefted software to link with these libraries when such linking would hurt
|
||||||
distribution arrangements that we consider reasonable and have not sought to
|
software freedom more than it would hurt proprietary software.
|
||||||
prevent, such as distribution of gcc linked with a non-free C library that is
|
|
||||||
included as part of a larger non-free system. This is not to say that such
|
|
||||||
non-free libraries are legitimate; rather, preventing free software from
|
|
||||||
linking with these libraries would hurt free software more than it would hurt
|
|
||||||
proprietary software.
|
|
||||||
|
|
||||||
As revised, the exception has two parts. Part (a) rewords the GPLv2
|
The system library exception has two parts. Part (a) rewords the GPLv2
|
||||||
exception for clarity but also removes the words ``unless that
|
exception for clarity replaces GPLv2's words ``unless that component itself
|
||||||
component itself accompanies the executable.'' By itself, (a) would
|
accompanies the executable'' with ``which is not part of the Major
|
||||||
be too permissive, allowing distributors to evade their
|
Component''. The goal here is to not require disclosure of source code of
|
||||||
responsibilities under the GPL. We have therefore added part (b) to
|
certain libraries, such as necessary Microsoft Windows DLLs (which aren't
|
||||||
specify when a system library that is an adjunct of a major essential
|
part of Windows' kernel but accompany it) that are required for functioning
|
||||||
operating system component, compiler, or interpreter does not trigger
|
of copylefted programs compiled for Windows.
|
||||||
the requirement to distribute source code. The more low-level the
|
|
||||||
functionality provided by the library, the more likely it is to be
|
However, in isolation, (a) would be too permissive, as it would sometimes
|
||||||
qualified for this exception.
|
allowing distributors to evade important GPL requirements. Part (b) reigns
|
||||||
|
in (a). Specifically, (b) specifies only a few functionalities that a the
|
||||||
|
system library may provide and still qualify for the exception. The goal is
|
||||||
|
to ensure system libraries are truly adjunct to a major essential operating
|
||||||
|
system component, compiler, or interpreter. The more low-level the
|
||||||
|
functionality provided by the library, the more likely it is to be qualified
|
||||||
|
for this exception.
|
||||||
|
|
||||||
|
Admittedly, the system library exception is a frequently discussed topic of
|
||||||
|
obsessed GPL theorists. The amount that has been written on the system
|
||||||
|
library exception (both the GPLv2 and GPLv3 versions of it), if included
|
||||||
|
herein, could easily increase this section of the tutorial to a length
|
||||||
|
greater than all the others.
|
||||||
|
|
||||||
|
Like any exception to the copyleft requirements of GPL, would-be GPL
|
||||||
|
violators frequently look to the system library exception as a potential
|
||||||
|
software freedom circumvention technique. When considering whether or not a
|
||||||
|
library qualifies for the system library exception, here is a pragmatic
|
||||||
|
thesis to consider, based on the combined decades of experience in GPL
|
||||||
|
interpretation of this tutorial's authors: the harder and more strained the
|
||||||
|
reader must study and read the system library exception, the more likely it
|
||||||
|
is that the library in question does not qualify for it.
|
||||||
|
|
||||||
% FIXME: These don't belong here
|
% FIXME: These don't belong here
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue