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

Re: On interpreting licences (was: KDE not in Debian?)



Raul Miller wrote:

> On Fri, Feb 04, 2000 at 11:31:48AM +0100, Marc van Leeuwen wrote:
> > That point is: why does GPL section 3 not say something like the
> > following?
> >
> >   For object code or other kinds of executable work, complete source code
> >   means the full source text for all executable code that will be executed as
> >   a direct consequence of executing the work, and whose presence on the same
> >   computer as the work is a prerequisite for proper execution of the work; in
> >   addition it includes any associated interface definition files, plus the
> >   scripts used to control compilation and installation of the executable.
>
> That wouldn't work -- you've just defined the executable code as the
> source code.
>
> Meanwhile, I've not gotten any real feedback on whether adding -static
> to CFLAGS is legal, let alone any of the more complicated changes
> I proposed...

Making that change under the scenario described by Marc would violate the GPL, but
so would lots of other things, such as linking a GPL program with a proprietary
libc.  In the latter case, it does not even require chaning any Makefile, simply
the fact of having a different libc on the compiling system will result in the
violation (of course only to the extent a static binary is distributed).

I note in this regard that Section 3 of the GPL defines "complete source code" as:

    For an executable work, complete source code means all the source code
    for all modules it contains, plus any associated interface definition files,
plus
    the scripts used to control compilation and installation of the executable.

Notice that it lists only "modules it *contains*", not all "modules it contains or
links to" or all "modules it contains during execution" (the latter being relevant
b/c "executable work" as written in the quoted sentence above refers to the
executable work as it is being distributed, not as it exists at run-time).  The
next sentence reads:

    However, as a special exception, the source code distributed need not
    include anything that is normally distributed (in either source or binary
    form) with the major components (compiler, kernel, and so on) of the
    operating system on which the executable runs, unless that component
    itself accompanies the executable.

This sentence can easily be read to support the dynamic/static distinction.
Normally you would distribute the "major component" w/ the executable only if it
is statically linked, in which case you are required to include the source of that
component; but if dynamically linked, you are not required to distribute the
source.  I.e., the GPL does distinguish b/w dynamic and static linking.

As to your -static flag, I think you agree, from your past postings, that someone
can distribute a GPL'd program dynamically linked against a proprietary Solaris
libc, but that this person could not compile it statically by adding the '-static'
flag and then distribute the program.  So really I don't see how your kghostview
example is any different from what is already allowed and done.

Ciao,

Andreas


Reply to: