All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Newall <davidn@davidnewall.com>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: Greg KH <greg@kroah.com>,
	Christer Weinigel <christer@weinigel.se>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: [PATCH] USB: mark USB drivers as being GPL only
Date: Sat, 09 Feb 2008 05:10:04 +1030	[thread overview]
Message-ID: <47ACA204.7030702@davidnewall.com> (raw)
In-Reply-To: <1202462101.15090.300.camel@violet>

Marcel Holtmann wrote:
> Anyway you are still under the impression that a Linux kernel module can
> be original work in the end. We keep telling you that could be a wrong
> assumption which is based on the view of many of the kernel developers
> and of most of the lawyers that looked at this specific topic.
>   
Yes, I am of that view. I accept that I could be wrong, but that also
means that I could be right. We agree, so far. The important point is
that I could be right. What will be done when somebody brings forth such
an work? Will the restriction in EXPORT_SYMBOL_GPL be removed, or will
the driver be unfairly restricted from using those other modules? You
did agree I could be right, so positing such a driver, what happens? (I
predict nothing; the driver is unfairly restricted.)


Now, Alexander Terekhov has forwarded some links to me, relating to the
question of whether or not a Linux kernel module can be original. Bear
in mind that these links relate to U.S. Copyright Law.

In http://digital-law-online.info/lpdi1.0/treatise27.html, Professor Lee
A Hollaar discusses derivative work and linking with libraries. He says:

    Some have claimed that an application program that needs a library
    for its operation is a derivative work of that library. They take
    that position because the application program is "based on" the
    library because it was written to use the subroutines and other
    aspects of the library.

    Such a position is misplaced. Even though the definition of a
    derivative work contained in Section 101 seems to support such a
    reading when it talks about a derivative work’s being "based upon
    one or more preexisting works," the examples all illustrate
    derivative works where the original work is somehow incorporated or
    recast in the derivative work:

    A "derivative work" is a work based upon one or more preexisting
    works, such as a translation, musical arrangement, dramatization,
    fictionalization, motion picture version, sound recording, art
    reproduction, abridgment, condensation, or any other form in which a
    work may be recast, transformed, or adapted. A work consisting of
    editorial revisions, annotations, elaborations, or other
    modifications which, as a whole, represent an original work of
    authorship, is a "derivative work". {FN109: 17 U.S.C. §101
    <http://www4.law.cornell.edu/uscode/17/101.html>}

    This need to use a portion of the original work in the derivative
    work is stated in the legislative history of the Copyright Act of
    1976, where the drafters discussed when the derivative work
    exclusive right is infringed:

    To be an infringement the "derivative work" must be "based upon the
    copyrighted work," and the definition in section 101 refers to "a
    translation, musical arrangement, dramatization, fictionalization,
    motion picture version, sound recording, art reproduction,
    abridgment, condensation, or any other form in which a work may be
    recast, transformed, or adapted." Thus, to constitute a violation of
    section 106(2), the infringing work must incorporate a portion of
    the copyrighted work in some form;


Let me say it: A work that incorporates no portion of a copyrighted work
is not derivative. He goes on to say:

    It could be argued that the component program really does include
    portions of the library that it uses – data structures that are
    passed as parameters, or even the parameter lists themselves. But
    elements dictated by external considerations are filtered out when
    trying to determine whether there is copyright infringement.


Elsewhere he says, by implication, that "elements like the overall
program structure or architecture and data structures that are ...
dictated by external or efficiency considerations" are not "protected by
the original program’s copyright".

He finishes this part of his treatise by saying:

    No other conclusion makes sense. If it were not the case, then any
    program using the applications program interfaces (APIs) of an
    operating system could be considered a derivative work of that
    operating system.


Another germane reference provided by Alexander

A lengthy article by Prof. Dr. Lothar Determann can be found at
http://www.usfca.edu/law/determann/softwarecombinations060403.pdf
(DANGEROUS LIAISONS – SOFTWARE COMBINATIONS AS DERIVATIVE WORKS?). In
the abstract, Prof. Dr. Determann writes:

    The article concludes that most forms of software combinations are
    less dangerous than commonly assumed, because they do not constitute
    derivative works (but instead either compilations or sui generis
    aggregations outside the scope of the copyright owner’s exclusive
    rights), and a number of statutes and legal doctrines significantly
    limit a copyright owner’s ability to contractually prohibit software
    combinations that do not also constitute derivative works under
    copyright law.


In the Introduction he says:

    [C]ourts and commentators have not yet developed general rules for
    the qualification of software combinations as derivative works, and
    the place and role of derivative works within the statutory context
    of compilations, collective works and other types of aggregations
    does not seem to have been examined in depth yet with respect to
    software combinations.


>From this we must conclude that any claim that kernel modules can only
be derivative is wrong. The courts haven't given us direction yet, so
nobody knows for sure. He goes on to explain a bit about what it is to
be a new and non-derivative work:

    If the creator of a new work takes very little of an existing work
    or takes only non-protectable content (e.g., ideas, facts) or
    changes so much that the new work does not bear a close resemblance
    to the existing work, the new creation is simply a new work of
    authorship––and not a derivative of the existing work. After all,
    most new works are influenced to some extent by existing works.


He repeats this:

    [A] new (non-derivative) work[:] (if only very little of or
    non-protectable elements of the existing materials are present in
    the new work or if the new work does not bear a substantial
    resemblance to the existing work)


He goes on to discuss the Copyright Act, and quotes from it:

    In no case does copyright protection for an original work of
    authorship extend to any idea, procedure, process, system, method of
    operation, concept, principle, or discovery, regardless of the form
    in which it is described, explained, illustrated, or embodied in
    such work.


This defeats a claim that all kernel modules are derivative by virtue of
XXX.

Prof. Dr. Determann directly address the GPL. Others have suggested, in
the course of this discussion, that a Linux kernel module is intended to
be used with Linux and that that brings them into the scope of the GPL.
Prof. Dr. Determann says this:

    It is worth noting, however, that the GPL generally permits end
    users to execute GPLed code in any combination they want. According
    to Section 0 of the GPL, "[t]he act of running the Program is not
    restricted." As a result, software companies do not have to be
    concerned about invoking the "viral" effect of the GPL based on a
    contributory liability theory if they distribute their add-on
    programs separately, i.e., not in context with any GPLed code, even
    if the add-on programs are intended for combination with a
    particular version of GPLed code. End users who run add-on programs
    with the GPLed code would not infringe, because the GPL allows
    execution without any restrictions.


He also addresses the question of dynamic linking:

    Consequently, dynamic linking to GPLed programs would not normally
    trigger the application of the GPL to the linking program, even if
    both programs are distributed together.


He concludes:

    Software combinations are less dangerous liaisons as some have
    recently argued, particularly in the context of the GPL.

    Under the U.S. Copyright Act, a combination of a computer program
    with other software results in the preparation of a derivative work
    only if the combination (a) is sufficiently permanent, (b) contains
    significant and creative portions of the other software, (c) is
    creative in its own right, and (d) involves significant and creative
    internal changes to the other software. Most software combinations
    fail to meet one or more of these requirements and constitute either
    compilations, collective works, or non-copyrightable aggregations,
    and neither affect copyright owners’ adaptation rights under Section
    106 of the U.S. Copyright Act.


Now, Alan has made a big issue over numerous legal opinions he has
received, but he's been completely coy in the details. He has been
spreading hearsay. I have presented quite definite opinions from learned
and respected practitioners. He has presented nothing. It does rather
seem that he is quite wrong, and his recent huffiness, including the
emotive "liar" confrontation, nicely shows the balance between the two
arguments.

The reasonable conclusion is that an original, non-derivative USB driver
can be written, and let's face it, a number of them have been referred
to in the course of this discussion.

USB drivers must NOT be restricted to GPL-licence only; that would
damage Linux.

My thanks go to Alexander Terekhov for providing some very informative
links.

> And while you are talking to a lawyer. Ask him/her if it is okay to
> create a binary only application that uses a GPL library. Tell him/her
> that it is original work.

Where does this come from? It's right out of left field. Since I've
never suggested such a thing, could you please do me the courtesy of
retracting the suggestion that I have?

  reply	other threads:[~2008-02-08 18:40 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-25 18:02 [PATCH] USB: mark USB drivers as being GPL only Greg KH
2008-01-28  8:13 ` Clemens Ladisch
2008-01-28  8:57   ` Greg KH
2008-01-28  9:58     ` Clemens Ladisch
2008-01-28 16:13       ` Greg KH
2008-01-28 10:44 ` Boaz Harrosh
2008-01-28 16:13   ` Greg KH
2008-01-28 16:44     ` Boaz Harrosh
2008-01-28 16:52       ` Greg KH
2008-01-28 21:49 ` TimC
2008-02-02 11:37 ` Christer Weinigel
2008-02-02 19:19   ` Greg KH
2008-02-03 11:48     ` Christer Weinigel
2008-02-03 14:35       ` Pekka Enberg
2008-02-03 17:04         ` Christer Weinigel
2008-02-03 23:15           ` Greg KH
2008-02-05 23:14             ` David Newall
2008-02-05 23:17               ` Alan Cox
2008-02-07 12:50                 ` David Newall
2008-02-07 14:06                   ` Alan Cox
2008-02-07 14:32                     ` David Newall
2008-02-05 23:29               ` Greg KH
2008-02-07 12:52                 ` David Newall
2008-02-05 23:34               ` Chris Friesen
2008-02-06 21:04                 ` Adrian Bunk
2008-02-07  1:36                   ` David Schwartz
2008-02-07 13:26                   ` David Newall
2008-02-07 14:15                     ` Alan Cox
2008-02-07 15:02                       ` David Newall
2008-02-07 15:07                         ` Alan Cox
2008-02-07 16:31                           ` David Newall
2008-02-08  0:18                     ` David Schwartz
2008-02-07 13:06                 ` David Newall
2008-02-07 14:12                   ` Alan Cox
2008-02-07 14:55                     ` David Newall
2008-02-07 15:01                       ` Alan Cox
2008-02-07 16:19                         ` David Newall
2008-02-07 22:51                     ` Hannu Savolainen
2008-02-07 23:17                       ` Greg KH
2008-02-03 15:07     ` David Newall
2008-02-04 10:21       ` Diego Zuccato
2008-02-04 19:18         ` Christer Weinigel
2008-02-04 21:38           ` Marcel Holtmann
2008-02-06 20:34             ` Christer Weinigel
2008-02-06 20:54               ` Hans-Jürgen Koch
2008-02-07 13:19                 ` David Newall
2008-02-07 14:06                   ` Hans-Jürgen Koch
2008-02-07 14:31                     ` David Newall
2008-02-07 16:13                       ` Hans-Jürgen Koch
2008-02-07 16:22                         ` Dave Higton
2008-02-07 16:50                         ` David Newall
2008-02-07 17:49                           ` Hans-Jürgen Koch
2008-02-08  2:50                             ` David Newall
2008-02-09 15:13                             ` Christer Weinigel
2008-02-09 15:41                               ` Pekka Enberg
2008-02-09 16:50                                 ` Christer Weinigel
2008-02-09 17:29                                   ` Pekka Enberg
2008-02-06 20:55               ` Marcel Holtmann
2008-02-06 20:52                 ` Alan Cox
2008-02-07 13:47                   ` David Newall
2008-02-07 14:26                     ` Alan Cox
2008-02-07 15:16                       ` David Newall
2008-02-06 21:29                 ` Christer Weinigel
2008-02-07  8:07                   ` Diego Zuccato
2008-02-07 15:05                     ` Adrian Bunk
2008-02-07 19:27                     ` Marcel Holtmann
2008-02-07 13:21                 ` David Newall
2008-02-07 19:35                   ` Marcel Holtmann
2008-02-07 13:16               ` David Newall
2008-02-05  7:49           ` Diego Zuccato
2008-02-05 23:25         ` David Newall
2008-02-05 23:25           ` Alan Cox
2008-02-07 13:00             ` David Newall
2008-02-07 14:10               ` Alan Cox
2008-02-07 14:48                 ` David Newall
2008-02-07 14:58                   ` Alan Cox
2008-02-07 16:03                     ` David Newall
2008-02-07 18:22                       ` Alan Cox
2008-02-08  2:55                         ` David Newall
2008-02-08 11:29                           ` Alan Cox
2008-02-08 16:34                             ` David Newall
2008-02-07  8:31           ` Diego Zuccato
2008-02-07 13:35             ` David Newall
2008-02-07 14:25               ` Diego Zuccato
2008-02-07 15:13                 ` David Newall
2008-02-08  8:48                   ` Diego Zuccato
2008-02-07 19:34               ` Lee Mathers
2008-02-08  8:55                 ` Diego Zuccato
2008-02-08 11:38                   ` Alan Cox
2008-02-05  9:55       ` Bernd Petrovitsch
2008-02-05 11:18         ` David Newall
2008-02-05 12:32           ` Bernd Petrovitsch
2008-02-10 15:19       ` Bauke Jan Douma
2008-02-03 15:12     ` David Newall
2008-02-03 15:43       ` Pekka Enberg
2008-02-03 16:06         ` David Newall
2008-02-03 16:48           ` Pekka Enberg
2008-02-05 11:33             ` David Newall
2008-02-05 19:43               ` Marcel Holtmann
2008-02-07 13:41                 ` David Newall
2008-02-07 19:05                   ` Marcel Holtmann
2008-02-08  3:57                     ` David Newall
2008-02-08  9:15                       ` Marcel Holtmann
2008-02-08 18:40                         ` David Newall [this message]
2008-02-08 19:08                           ` David Newall
2008-02-08 19:23                             ` David Newall
2008-02-08 19:36                             ` Daniel Hazelton
2008-02-08 21:36                               ` Alan Cox
2008-02-08 23:27                                 ` Daniel Hazelton
2008-02-08 19:13                           ` Greg KH
2008-02-08 19:42                             ` David Newall
2008-02-08 23:41                           ` Marcel Holtmann
2008-02-10  2:01                             ` David Schwartz
2008-02-10  4:50                               ` Marcel Holtmann
2008-02-10  5:07                                 ` Daniel Hazelton
2008-02-10  5:43                                   ` Marcel Holtmann
2008-02-10  6:18                                     ` Daniel Hazelton
2008-02-10 11:20                                   ` Alan Cox
2008-02-10 13:30                                     ` Daniel Hazelton
2008-02-10 13:45                                       ` Olof Johansson
2008-02-12 18:02                                 ` Valdis.Kletnieks
2008-02-12 18:04                                   ` Alan Cox
2008-02-09 13:40                           ` Christer Weinigel
2008-02-08 20:21                         ` Valdis.Kletnieks
2008-02-08 23:30                           ` Marcel Holtmann
2008-02-03 17:13           ` Marcel Holtmann
2008-02-05 11:39             ` David Newall
2008-02-05 11:46               ` Pekka Enberg
2008-02-06 21:12                 ` Christer Weinigel
2008-02-06 21:48                   ` Valdis.Kletnieks
2008-02-07  6:22                   ` Pekka Enberg
2008-02-07 13:31                     ` David Newall
2008-02-07 13:47                       ` Pekka Enberg
2008-02-05 12:27               ` Alan Cox
2008-02-05 20:03               ` Marcel Holtmann
2008-02-05 20:35                 ` Chris Friesen
2008-02-05 21:12                   ` Marcel Holtmann
2008-02-07 12:41                     ` David Newall
2008-02-07 13:37                   ` David Newall
2008-02-07 13:45                 ` David Newall
2008-02-07 14:28                   ` Alan Cox
2008-02-07 15:39                     ` David Newall
2008-02-05 20:34               ` Greg KH
2008-02-06 20:14                 ` Christer Weinigel
2008-02-06 20:28                   ` Greg KH
2008-02-06 21:03                     ` Christer Weinigel
2008-02-07 13:15                     ` David Newall
2008-02-07 13:39                 ` David Newall
2008-02-06 20:43 ` Jon Smirl
2008-02-06 21:23   ` Greg KH
2008-02-01 14:45 Gilles Espinasse
2008-02-01 17:29 ` Greg KH
2008-02-06 21:14 ` Jan Engelhardt
2008-02-07  7:30   ` Gilles Espinasse
2008-02-03 11:17 Gilles Espinasse
2008-02-04 11:43 Matthew
2008-02-04 15:04 ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47ACA204.7030702@davidnewall.com \
    --to=davidn@davidnewall.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=christer@weinigel.se \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=marcel@holtmann.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.