LWN.net Logo

Linking

Linking

Posted Jun 24, 2008 10:02 UTC (Tue) by tialaramex (subscriber, #21167)
In reply to: A position statement on closed-source kernel modules by lrosen
Parent article: A position statement on closed-source kernel modules

(This is essentially a side-issue, because no-one seems to be talking about trying to send
lawyers after the makers of binary modules, but it's worth addressing because it's about the
GPL vs LGPL rules which, contrary to lrosen's claim, I believe are important and beneficial)

The argument you've made for linking can be made about lots of processes in the production of
a literary work. But no-one has successfully made these arguments to a court in all these long
years, so either they don't believe it, or the judges don't.

The "creativity" component of copyright is whitewash. Maybe you'd argue that it shouldn't be,
but with courts content to determine arbitrary collections of information as "sufficiently"
creative for copyright protection I don't think your argument will stand up.

Actually I don't think we even need to go that far. You haven't mentioned distribution.
Neither the GPL nor LGPL care what you do with the protected code so long as you don't
distribute it. If you want to take a GPL'd program (say GCC) and re-factor it as a library for
integration into your own software no-one gives a hoot.

But if you distribute the resulting product under a proprietary license you are infringing
even if you rely on a third party to do the actual linking. This is for two reasons. Firstly
because the law doesn't only care who pulled the trigger (hiring someone else to kill your
wife doesn't make you innocent of murder). But secondly because you have no choice but to copy
"sufficiently" expressive/ creative elements like arbitrary human-readable identifiers from
the GPL'd software into your own product to make it work. Only if the sufficiency barrier is
raised considerably would it be a problem to meet it for external linking.

So far as I can tell your argument revolves around the idea that linking software resembles
binding two books together with cellophane for sales purposes. No copyright issue. This is
what the GNU GPL calls "mere aggregation". But compiling your software against a dynamic
library is not "mere aggregation". Let me suggest a different analogy...

Suppose I write a book criticising a popular novel, ah, let's say "Moby Dick" just after it
has been published. I am entitled to write whatever I like merely /about/ this book, and my
lawyer might advise me that I can quote small extracts from the book to illustrate a point, so
long as I'm not scared of going to court to argue fair use. But how about if I'd like to buy
copies of Moby Dick and apply stickers to each page with my commentary as footnotes to the
relevant parts of the story (ignore for a moment the logistical challenge, in an e-book this
would certainly be trivially overcome) ? Well, if I want to do this just for my own amusement
I'm protected by the First Sale doctrine (they're mine and I'll do as I please). However, if I
want to subsequently sell or otherwise distribute these copies (maybe give them away to
schools), they are clearly derived works and I think I will need permission from the copyright
holder (author or publisher) of the original Moby Dick.

So, Lawrence, would you advise me to proceed? Would you be happy to argue (on your own dollar)
that the stickered version of Moby Dick is not a derived work but merely an aggregation of two
separate works ?


(Log in to post comments)

Linking

Posted Jun 25, 2008 21:18 UTC (Wed) by lrosen (guest, #31972) [Link]

You wrote: "Suppose I write a book criticising a popular novel, ah, let's say 'Moby Dick'...."

 
That is your right. And you may copyright your book. 

My primary example, though, is this. Suppose you include in your new book a link that says "Go
read 'Moby Dick' by Herman Melville and let it enrapture you, and return here for the rest of
my comments." That's linking to a verbatim copy of Moby Dick. That's what most device drivers
do with Linux.

*****

You then wrote: "But how about if I'd like to buy copies of Moby Dick and apply stickers to
each page with my commentary as footnotes...."

I think I'm safe in saying, that's a derivative work. :-) 

*****

You wrote: "Well, if I want to do this just for my own amusement...."

I'd rather put it this way: "If you do it just for your own amusement Herman Melville is
unlikely to give a damn that you're infringing, but if you do it for commercial reasons he
would probably sue you for copyright infringement." [Ignore the fact that Moby Dick is now
public domain!]

*****

You wrote: "However, if I want to subsequently sell or otherwise distribute these copies
(maybe give them away to schools), they are clearly derived works...."

We already decided they were derivative works. There is no need to raise that question again.
It makes no difference that you want to sell them or give them away. What we are deciding is
whether you are entitled to do so under the Fair Use doctrine, the First Sale doctrine, or 17
USC 102(b) (the Merger doctrine). As to which, I leave that as an exercise for the reader. 

But my own advice would be, don't try selling any of MY writings with your stickers and
commentary all over every page--unless I authorized you to do so in my open source license....
:-)

Copyright (C) 2008 Lawrence Rosen
This email is licensed to the public under the Open Software License (OSL 3.0).

Linking

Posted Jun 26, 2008 10:29 UTC (Thu) by tialaramex (subscriber, #21167) [Link]

Firstly congratulations on entirely avoiding an actual answer to my hypothetical, masterfully
done. Still, I think you've made your position clear enough.

You're in the situation of the lawyer who tells his client that of course it's OK for him to
keep an alligator in his home, and then only subsequently finds out that alligators aren't the
cute little furry things that go "Meow" but the big reptiles with the bad breath and the
protected wildlife status. Whoops. In the light of this new information the alligator advice
would be wrong.

You seem to have confused "linking" in the sense meant by the distributed hypermedia
community, where a link is just a machine readable "look at this" like your version of the
Moby Dick book - with the "linking" needed to take a piece of software that's incomplete,
non-functional or even meaningless and combine it with one or more other pieces of software
into a whole.

The linking process itself is purely mechanical, like assembling a car, but for it to be
possible at all the creators of the two (or more) pieces of software must agree on a number of
essentially arbitrary (as arbitrary as the choices of adjectives to describe a whale would be)
decisions. In a very trivial piece of software this might be just one or two decisions, in a
significant application like GCC it will be practically uncountable. In a GPL'd work these
choices are incorporated into the work made available for licensees to copy and redistribute,
but not without restriction.

I don't know how technical you are, my guess is "Not very". But get someone to show you how
'ar' works. That's a piece of software which takes two object files and merely aggregates them
into a single file, you can easily separate them again, even without specialist knowledge.
Now, get them to show you how 'ld' works, that's the linker. This combines many pieces from
several files into a single file, like my stickering process, interconnecting and changing
them so that they work as a whole. This is effectively irreversible. After you've seen what's
actually going on I think you might have a different opinion of whether it's "verbatim
copying" or the creation of a derivative work. That would be your "alligator" moment.

Yes, in theory you could sidestep the copying problem with clean room reverse engineering. But
you ought to know enough about the history of IP to realise that it's not a cost-effective
choice, it's the last resort. If I see that someone has used my GPL'd library to make a $10
shareware with a restrictive license, I'm not going to assume that they hired an army of
people to reverse engineer the library, but that they're simply infringing.

Linking

Posted Jun 27, 2008 20:48 UTC (Fri) by Tet (subscriber, #5433) [Link]

But get someone to show you how 'ar' works [...] Now, get them to show you how 'ld' works

As a complete aside, anyone wanting to know how ld works is unlikely to do better than reading Levine's excellent "Linkers and loaders" book.

Linking

Posted Jun 27, 2008 22:12 UTC (Fri) by nix (subscriber, #2304) [Link]

Ian Lance Taylor also wrote an excellent series on ELF linkers on his 
blog, which I seem to have mislaid the URL of (I think LWN linked to it at 
one point).

Linking

Posted Jul 2, 2008 4:18 UTC (Wed) by roelofs (subscriber, #2599) [Link]

Ian Lance Taylor also wrote an excellent series on ELF linkers on his blog, which I seem to have mislaid the URL of (I think LWN linked to it at one point).

Here you go. I didn't bookmark the LWN article, but it would have been from late March--probably either the 20 March or the 27 March edition.

Greg

Linking

Posted Jul 2, 2008 19:25 UTC (Wed) by nix (subscriber, #2304) [Link]

Thanks! (akregator tends to randomly lose feeds you put into it, I 
think because it only saves its feed list at session save time...)

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds