RE: Linux GPL and binary module exception clause?

From: David Schwartz (davids_at_webmaster.com)
Date: 12/05/03

  • Next message: Anton Altaparmakov: "Re: Is there a "make hole" (truncate in middle) syscall?"
    To: "Linus Torvalds" <torvalds@osdl.org>
    Date:	Fri, 5 Dec 2003 03:16:27 -0800
    
    

    > On Thu, 4 Dec 2003, David Schwartz wrote:

    > > The GPL gives you the unrestricted right to *use* the original work.
    > > This implicitly includes the right to peform any step necessary to use
    > > the work.

    > No it doesn't.
    >
    > Your logic is fundamentally flawed, and/or your reading skills are
    > deficient.

            I stand by my conclusions.

    > The GPL expressly states that the license does not restrict the act of
    > "running the Program" in any way, and yes, in that sense you may "use" the
    > program in whatever way you want.

            Please tell me how you use the Linux kernel source code. Please tell me how
    you run the Linux kernel source code without creating a derived work.

    > But that "use" is clearly limited to running the resultant program. It
    > very much does NOT say that you can "use the header files in any way you
    > want, including building non-GPL'd programs with them".

            Huh? What "resultant program"? Are you talking about an executable that's a
    derived work of the Linux kernel source code?

            Modules are derived works of the Linux kernel source code, not the kernel
    executable. So the license that would be relevent would be a license that
    restricts how you can use the source code or derived works of the source
    code. License to run a program, when you have source code, is license to
    compile that source code.

            For example, 2b says:

        b) You must cause any work that you distribute or publish, that in
        whole or in part contains or is derived from the Program or any
        part thereof, to be licensed as a whole at no charge to all third
        parties under the terms of this License.

            You don't seriously think that's talking about derived works that are
    derived from *executables*, do you?

    > In fact, it very much says the reverse. If you use the source code to
    > build a new program, the GPL _explicitly_ says that that new program has
    > to be GPL'd too.

            I download the Linux kernel sources from kernel.org. Please tell me what I
    can do with them without agreeing to the GPL. Is it your position that I
    cannot compile them without agreeing to the GPL? If so, how can running the
    program be unrestricted? How can you run the linux kernel soruce code
    without compiling it?

    > > Please tell me how you use a kernel header file, other than by including
    > > it in a code file, compiling that code file, and executing the result.
    >
    > You are a weasel, and you are trying to make the world look the way you
    > want it to, rather than the way it _is_.

            That is a serious example of projection.

    > You use the word "use" in a sense that is not compatible with the GPL. You
    > claim that the GPL says that you can "use the program any way you want",
    > but that is simply not accurate or even _close_ to accurate. Go back and
    > read the GPL again. It says:
    >
    > "The act of running the Program is not restricted"
    >
    > and it very much does NOT say
    >
    > "The act of using parts of the source code of the Program is not
    > restricted"

            You run a piece of source code by compiling it. If a header file is
    protected by the GPL, permission to "run" it means permission to include it
    in files you compile.

            The GPL says:

      0. This License applies to any program or other work which contains
    a notice placed by the copyright holder saying it may be distributed
    under the terms of this General Public License. The "Program", below,
    refers to any such program or work, and a "work based on the Program"
    means either the Program or any derivative work under copyright law:
    that is to say, a work containing the Program or a portion of it,

            The work that was placed under the GPL is the Linux kernel source. The
    "program" is the source code. Please, tell me how you "run" the Linux kernel
    source code other than by compiling it to form a derived work.

            Perhaps you misunderstand the GPL to mean that a 'program' must be an
    executable? Not only does section zero clearly refute that, but if it were
    true, it would mean that a module is not a derived work from a GPL'd work!
    It is a program that's placed under the GPL, and a module is not a derived
    work from any other executable.

    > In short: you do _NOT_ have the right to use a kernel header file (or any
    > other part of the kernel sources), unless that use results in a GPL'd
    > program.

            The phrase "results in a GPL'd program" is one that I cannot understand. I
    have no idea what you mean by it. You have the right to "run" the header
    file, the GPL gives it to you. The way you "run" a header file is by first
    compiling a source code that includes it into an executable.

    > What you _do_ have the right is to _run_ the kernel any way you please
    > (this is the part you would like to redefine as "use the source code",
    > but that definition simply isn't allowed by the license, however much you
    > protest to the contrary).

            How can I run the kernel without compiling it? And how can I compile it
    without creating a derived work? The GPL says:

      5. You are not required to accept this License, since you have not
    signed it. However, nothing else grants you permission to modify or
    distribute the Program or its derivative works. These actions are
    prohibited by law if you do not accept this License. Therefore, by
    modifying or distributing the Program (or any work based on the
    Program), you indicate your acceptance of this License to do so, and
    all its terms and conditions for copying, distributing or modifying
    the Program or works based on it.

            Of course, the second sentence is utterly false. Fair use and necessary
    step provisions do just that.

    > So you can run the kernel and create non-GPL'd programs while running it
    > to your hearts content. You can use it to control a nuclear submarine, and
    > that's totally outside the scope of the license (but if you do, please
    > note that the license does not imply any kind of warranty or similar).
    >
    > BUT YOU CAN NOT USE THE KERNEL HEADER FILES TO CREATE NON-GPL'D BINARIES.
    >
    > Comprende?

            I have no idea what you mean by a "NON-GPL'D BINARY". *Any* binary you
    create from a kernel header file is, at least to some extent, a derived work
    of that header file. However, the question for whether it would be covered
    by the GPL is whether you exercised a privilege in creating that work that
    you were only granted by the GPL.

            Again, what I'm trying to say is that the term "program" in the GPL means
    whatever it is that's placed under the GPL (which can be an executable
    and/or source code). Of course, placing an executable under the GPL
    effectively places its source code under the GPL (as soon as you distribute
    it to someone else, as you are required to do, who is limited only by the
    GPL).

            In the case of the Linux kernel, the source code was initially placed under
    the GPL. Once source code is placed under the GPL, your right to "run the
    program" means a right to compile the source code. In the case of header
    files, this means the right to include the header file in code files and
    thereby produce and use derived works. (Whether or not you can distribute
    those derived works is, of course, a whole different argument.)

            So my point is that the GPL isn't really even relevant here. You have all
    the rights you need without agreeing to it. "Activities other than copying,
    distribution and modification are not
    covered by this License; they are outside its scope." Including a header
    file in your own class file is not copying, distribution, or modification of
    that header file. It is use, mere use.

            DS

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Anton Altaparmakov: "Re: Is there a "make hole" (truncate in middle) syscall?"

    Relevant Pages

    • Re: Compare Linux and Freebsd Redux
      ... GPL and Linux are two completely separate things. ... The BSD license truly is free. ... the free or redistribution encumbered licenses ... the source code of your own, ...
      (comp.unix.bsd.freebsd.misc)
    • Re: (was) GUI With Ruby =>OT FSF and GPL
      ... The GPL was crafted so ... long as they accept and execute the terms of the license. ... Here's the section which requires source code ... cost of physically performing source distribution, ...
      (comp.lang.ruby)
    • Re: Asm For Nerds
      ... publication of full specs _and_ full BIOS source code in the ... any kind of failure. ... just an unwillingness to write code related to the GPL cause... ... I proceeded to find the BSD license, ...
      (alt.lang.asm)
    • Re: A fucking bunch of lying pussies
      ... you cannot have freeware sections integrated in a GPL program, ... GPL program could be construed as an attempt to abrogate the authors ... violating your license agreement, something you are not allowed to do ... > of the source code to my heart's content, as long as I give credit where credit ...
      (alt.lang.asm)
    • Re: Is stork a troll? (was Re: Trolltech QT license question)
      ... copyright protects. ... no part of the GPL that compels him to make the application open-source ... Where in the text of the license itself ... As for all software being a derived work, ...
      (comp.os.linux.development.apps)