[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
plugins and GPL, revisited
Alexander R. Pruss
plugins and GPL, revisited
27 May 2004 07:32:49 -0700
IANAL. (I'm just a developer involved in three GPL, or GPL-modified
in one case, projects.) I think I found a scenario where proprietary
plugins could legally be used in conjunction with a piece of GPL
software. What do people think.
Suppose what I want to do is to extend a piece of GPL software, in
this example the theoretical media application gnuPlayer, to use some
proprietary closed-source plugin, let's say drmPlug. I could portion
out the work among three programmers as follows, without letting them
be in contact except as provided below. (This is an idealized case,
and I think less idealized ones would work, too, including
1. Let Jane find out what gnuPlayer does in general terms (what kinds
of media it plays, etc.), being careful never to actually let Jane
come in contact with the gnuPlayer source or binaries or with anything
derived from them. Basically, she can just look at my summary of some
feature sheet. (We all know that copying features would not be
copyright infringement, so this is OK.)
2. Jane writes a specification (The Spec) for an interface between
media players and DRM plugins (while aware of some of the features of
gnuPlayer). She does so without having looked at gnuPlayer source or
binaries, so The Spec is not a derivative work of gnuPlayer.
3. The Spec is placed in the public domain (for simplicity).
4. Bob is given The Spec and has also never come in contact with
gnuPlayer source or binaries or with anything derived from them. He
writes drmPlug, a DRM plugin that functions according to The Spec.
Bob has no contact with Fred. Since The Spec is not a derivative work
of gnuPlayer, and Fred has never been in contact with gnuPlayer, it
follows that drmPlug is not a derivative work of gnuPlayer.
5. Fred is given The Spec. He is going to have no contact with Bob or
with drmPlug. Instead, Fred extends gnuPlayer to a new application,
myGnuPlayer, that is just like gnuPlayer but supports DRM plugins. He
tests myGnuPlayer on a trivial GPL'ed plugin that he writes,
xor37Plugin, that decrypts streams that have been xor'ed with 0x37.
He releases myGnuPlayer under the GPL, including all binaries and
source for the player and for xor37Plugin. Note that myGnuPlayer is
not a derivative work of drmPlug and is not distributed with drmPlug
in any way at this point, and hence there is no need for Fred to
supply source code for drmPlug. Because myGnuPlayer may count as a
derivative work of The Spec, a human readable public domain document,
Fred includes The Spec with the myGnuPlayer distribution.
6. At this point, I take Bob's drmPlug, put its binaries on one CD
with a restrictive click-through license, put Fred's myGnuPlayer, put
its binaries and source (include a copy of The Spec and source and
binaries for xor37Plugin for good measure) on another CD, and send the
CDs to customers. Clearly putting two CDs in one envelope is a mere
aggregation and not the creation of a new work.
If a GPL violation occurred, where did it occur. It did not occur in
steps 1-4, since these occurred without access to gnuPlayer's
copyrighted material. If one thinks that my summary of a feature
sheet is a copyright infringement (step 1), then one is under the
mistaken impression of thinking that information can be copyrighted.
Besides, this could all be done without any summary of a feature
sheet, with Jane just being told: "We're dealing with a multimedia
If a GPL violation occurred, maybe it was in step 5. But how could
step 5 be in violation? Fred provides ALL of the source code for
myGnuPlayer and even source code for one sample plugin. Nor is it a
violation to make GPL software that CAN be used with a closed source
plugin, because all GPL software can be used with closed source
components since it provides source code and so an enduser can always
link in whatever he wants, because use is unrestricted by the GPL only
redistribution. One can no more complain that Fred doesn't provide
source code for drmPlug than one can that Linus doesn't provide source
code for Windows Media Player. Fred has nothing to do with drmPlug's
writing or distribution and is not producing a derivative work of
Thus, we're left with step 6. To argue that a GPL violation occurred,
one would have to argue that putting a CD of myGnuPlayer and a CD fo
drmPlugin in a single envelope created a derivative work that needs to
be GPL licensed as a whole. This is surely absurd and would surely be
held as absurd by a court, no?
Admittedly, when the user installs the plugin, a work derivative of
myGnuPlayer and drmPlugin is produced BY THE ENDUSER. However, this
is perfectly OK because the GPL allows endusers to create derivative
works without releasing source code, as long as they do not
redistribute this derivative work.
A different way to put it is this: A GPL violation is a copyright
infringement. A copyright infringement requires copying. myGnuPlayer
is not infringing because it complies with the GPL. drmPlugin is not
infringing because it doesn't involve any copying from gnuPlayer or
myGnuPlayer. But taking two non-infringing works and putting them in
one envelope does not create a new infringing work, surely. Not even
if the two works work together really well. (If I send a friend a
copy of two complementary books and recommend to him that he read them
together because they go together really well, I am not creating an
anthology, surely, and hence do not need to ask for permission of the
individual copyright holders.)
- plugins and GPL, revisited,
Alexander R. Pruss <=