2005-02-02 14:49:37

by Frank klein

[permalink] [raw]
Subject: Copyright / licensing question

Hi,
I have got an offer to write a book on Linux
filesystems. In this I would like to cover existing
filesystems like ext3, xfs etc. I would also cover
embedded file systems such as jffs,ROMfs,cramsf etc.

I am having some licensing questions. It would be
really great if you can clarify on them

1. For explaining the internals of a filesystem in
detail, I need to take their code from kernel sources
'as it is' in the book. Do I need to take any
permissions from the owner/maintainer regarding this ?
Will it violate any license if reproduce the driver
source code in my book ??

2. I will write some custom drivers also for
illustration. For this I shall include kernel headers.
I also intend to put this in the book. From whom I
need to take permission regarding this ? The book will
be supported by a web-site. I have no problems in
releasing my custom code under GPL. But Am I violating
any license by putting the code in the book ?

Please CC me

Thanks

yours
Frank Klein




__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail


2005-02-02 15:07:29

by Arjan van de Ven

[permalink] [raw]
Subject: Re: Copyright / licensing question

On Wed, 2005-02-02 at 06:49 -0800, Frank klein wrote:
> Hi,
> I have got an offer to write a book on Linux
> filesystems. In this I would like to cover existing
> filesystems like ext3, xfs etc. I would also cover
> embedded file systems such as jffs,ROMfs,cramsf etc.
>
> I am having some licensing questions. It would be
> really great if you can clarify on them
>
> 1. For explaining the internals of a filesystem in
> detail, I need to take their code from kernel sources
> 'as it is' in the book. Do I need to take any
> permissions from the owner/maintainer regarding this ?
> Will it violate any license if reproduce the driver
> source code in my book ??

no.
However what you SHOULD do is attribute the code properly and point the
reader clearly at the origin and to the fact that the code is licensed
under the terms of the GPL only. (or in case of dual license, well you
get the point)


2005-02-02 18:58:22

by Rik van Riel

[permalink] [raw]
Subject: Re: Copyright / licensing question

On Wed, 2 Feb 2005, Frank klein wrote:

> 1. For explaining the internals of a filesystem in
> detail, I need to take their code from kernel sources
> 'as it is' in the book. Do I need to take any
> permissions from the owner/maintainer regarding this ?
> Will it violate any license if reproduce the driver
> source code in my book ??

Reproducing GPL code is legal, though you may want to
make sure that the copyright notice on the book doesn't
accidentally try to prohibit your readers from further
distributing said code ;)

--
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it." - Brian W. Kernighan

2005-02-02 23:19:01

by Thomas Gleixner

[permalink] [raw]
Subject: Re: Copyright / licensing question

On Wed, 2005-02-02 at 06:49 -0800, Frank klein wrote:
> I am having some licensing questions. It would be
> really great if you can clarify on them
>
> 1. For explaining the internals of a filesystem in
> detail, I need to take their code from kernel sources
> 'as it is' in the book. Do I need to take any
> permissions from the owner/maintainer regarding this ?
> Will it violate any license if reproduce the driver
> source code in my book ??

Legally, not if you mention the licence of the code clearly.

Personaly, I think it's a question of etiquette whether to contact the
authors or not.

tglx


2005-02-02 23:35:08

by Charles Cazabon

[permalink] [raw]
Subject: Re: Copyright / licensing question

Thomas Gleixner <[email protected]> wrote:
> On Wed, 2005-02-02 at 06:49 -0800, Frank klein wrote:
> > I am having some licensing questions. It would be
> > really great if you can clarify on them
> >
> > 1. For explaining the internals of a filesystem in
> > detail, I need to take their code from kernel sources
> > 'as it is' in the book. Do I need to take any
> > permissions from the owner/maintainer regarding this ?
> > Will it violate any license if reproduce the driver
> > source code in my book ??
>
> Legally, not if you mention the licence of the code clearly.

I'm not sure that's the case. Inclusion of significant chunks of source code
(not just a dozen lines or whatever) might bring the book into "derived work"
territory, and your publisher is almost certainly not going to allow
redistribution under the GPL ...

The short answer is "ask a lawyer".

Charles
--
-----------------------------------------------------------------------
Charles Cazabon <[email protected]>
GPL'ed software available at: http://www.qcc.ca/~charlesc/software/
-----------------------------------------------------------------------

2005-02-03 00:51:42

by H. Peter Anvin

[permalink] [raw]
Subject: Re: Copyright / licensing question

Followup to: <[email protected]>
By author: Charles Cazabon <[email protected]>
In newsgroup: linux.dev.kernel
>
> I'm not sure that's the case. Inclusion of significant chunks of source code
> (not just a dozen lines or whatever) might bring the book into "derived work"
> territory, and your publisher is almost certainly not going to allow
> redistribution under the GPL ...
>
> The short answer is "ask a lawyer".
>

I think that would fall under the "aggregate work" clause.

-hpa

2005-02-03 08:33:22

by Helge Hafting

[permalink] [raw]
Subject: Re: Copyright / licensing question

Charles Cazabon wrote:

>Thomas Gleixner <[email protected]> wrote:
>
>
>>On Wed, 2005-02-02 at 06:49 -0800, Frank klein wrote:
>>
>>
>>>I am having some licensing questions. It would be
>>>really great if you can clarify on them
>>>
>>>1. For explaining the internals of a filesystem in
>>>detail, I need to take their code from kernel sources
>>>'as it is' in the book. Do I need to take any
>>>permissions from the owner/maintainer regarding this ?
>>>Will it violate any license if reproduce the driver
>>>source code in my book ??
>>>
>>>
>>Legally, not if you mention the licence of the code clearly.
>>
>>
>
>I'm not sure that's the case. Inclusion of significant chunks of source code
>(not just a dozen lines or whatever) might bring the book into "derived work"
>territory, and your publisher is almost certainly not going to allow
>redistribution under the GPL ...
>
>
I don't think this will be a problem. The separation between code
and the rest of the book is clear, and the book isn't directly
executable. :-)

Even a book that mainly list source and merely offer some short explanations
should be easy to get right - the _code_ is GPL so it is okay for people to
photocopy it off the pages (who in their right mind would, though) but
the rest of the book is printed under ordinary terms.

Helge Hafting

2005-02-03 12:09:08

by George Spelvin

[permalink] [raw]
Subject: Re: Copyright / licensing question

I'll respond in terms of U.S. law; if you want something else, please
mention it.

You might find a lot of useful information at
http://fairuse.stanford.edu/Copyright_and_Fair_Use_Overview/chapter9/index.html
http://www.usg.edu/admin/legal/copyright/#part3d3a
http://en.wikipedia.org/wiki/Fair_use
ttp://http://www.nolo.com/lawcenter/ency/article.cfm/ObjectID/C3E49F67-1AA3-4293-9312FE5C119B5806/catID/2EB060FE-5A4B-4D81-883B0E540CC4CB1E

> 1. For explaining the internals of a filesystem in detail, I need to
> take their code from kernel sources 'as it is' in the book. Do I need
> to take any permissions from the owner/maintainer regarding this ?
> Will it violate any license if reproduce the driver source code in
> my book ??

This is exactly the sort of "Comment and criticism" that is anticipated
and covered by the fair use exemption. In judging whether the use is
fair, 17 USC 107 says:

# ? 107. Limitations on exclusive rights: Fair use
#
# Release date: 2004-04-30
#
# Notwithstanding the provisions of sections 106 and 106A, the fair use
# of a copyrighted work, including such use by reproduction in copies
# or phonorecords or by any other means specified by that section, for
# purposes such as criticism, comment, news reporting, teaching (including
# multiple copies for classroom use), scholarship, or research, is not
# an infringement of copyright. In determining whether the use made of a
# work in any particular case is a fair use the factors to be considered
# shall include:
# (1) the purpose and character of the use, including whether such use
# is of a commercial nature or is for nonprofit educational purposes;
# (2) the nature of the copyrighted work;
# (3) the amount and substantiality of the portion used in relation to
# the copyrighted work as a whole; and
# (4) the effect of the use upon the potential market for or value of
* the copyrighted work.
# The fact that a work is unpublished shall not itself bar a finding
# of fair use if such finding is made upon consideration of all the above
# factors.

Going through those in your case, they are:

1. The Transformative Factor: The Purpose and Character of Your Use

It's commercial use, but the non-commercial exemptions are a relatively
recent addition to copyright law. The original, classic "fair use"
is commentary and criticism.

I.e. are you adding something to the quoted material? Have you added
new information or insights? This is one of the most important factors,
and in your case, assuming the book is worth anything at all, the answer
is clearly "yes".

On this ground alone, you're probably safe.

2. The Nature of the Copyrighted Work

Scope for fair use is broader for published than unpublished works
(because the potential future value of an unpublished work is affected
more by copious excerpting), and broader for factual works than fiction
(because facts and ideas cannot be copyrighted, so it takes more quoting
to include a threshold amount of copyrightable "expression").

The Linux kernel is clearly "published", and while the second part is
a little fuzzy (and I'm not eager enough to chase it back to original
case law), I think the functional nature of software places it in the
"factual" category.

3. The Amount and Substantiality of the Portion Taken

Your publisher won't let you waste enough paper to print a huge fraction
of the Linux kernel. Yes, it may be a lot of code, but it's not going
to be "most" by a long shot.

In general the standard is that "no more was taken than was necessary"
to achieve the purpose for which the copying was done. I think you'll
do this anyway, and the law doesn't require you to be super anal about
eliding every snippet and #define that's not directly referenced.

The Lions book, in contrast, included most of 6th edition Unix,
leading to the need for negotiations. Also, the 6th edition wasn't
publushed, leading to problems with the previous factor.

The legally fuzzy isse is what constitutes a "work" here. The function?
The source file? The tarball? I'd have to look for a case involving
copying of entire entries from an encyclopedia or dictionary to get it
fully untangled.

However, you're helped here by the GPL, which can be used to show
the original author's intentions. It defines the "work" as an entire
program, that compiles to an executable that does something. As long
as your excerpts don't compile to a working kernel, you're pretty safe.

4. The Effect of the Use Upon the Potential Market

Will it hurt the copyright owner? This is typicaly expressed in terms
of income, which doesn't apply very much. But your intent is clearly to
*add* value to the Linux kernel, so this factor militates in your favor.


> 2. I will write some custom drivers also for illustration. For this
> I shall include kernel headers. I also intend to put this in the
> book. From whom I need to take permission regarding this ? The book
> will be supported by a web-site. I have no problems in releasing
> my custom code under GPL. But Am I violating any license by putting
> the code in the book ?

Do you mean your code, or the headers? If it's your code, obviously you
can do whatever you like with it. (The GPL imposes on derived works a
minimum standard of access. You are free to exceed that by granting
additional alternative permission.)

For the headers, I'm not sure why you'd bother to include ones you're
not commenting on. It's not as if the code will work without a
computer and a compiler, at which point the person can get the Linux
code in machine-readable form easily enough.


However, you can go at it a different way... if you want to include large
code dumps without commentary, you can segregate them into an appendix and
claim the "mere aggregation" exemption in the GPL for the storage medium
of the printed book! If it's not commented on or logically attached
to the text of the book, but merely background material for some text
(your file system) which is both GPLed (thus obeying the "derived works"
rule) and used in the book with non-GPL permission (since it's your work).

Let me recap that logical gavotte again:
- As much as Some Corrupt Organizations would like it to be, the copyright
notion of "derived work" is not strictly transitive. It is possible
for B to be derived from A and C to be derived from B without C being
a derived work of A.
- It can be argued that the book is a derived work of your example file
system, and the example file system is a derived work of existing Linux
kernel code, but that's okay. Your example file system is making allowed
use of the Linux code because it's GPLed. And your book is making allowed
use of your example file system because you can give yourself permission.
- The issue is, to what extent is the book a derived work of the Linux kernel.
Well, obviously it is, but it's a "comment and criticism" work protected
by Fair Use. You have to look at the four factors above.
- You can also include large code dumps as "background material" if your
book is NOT derived from them (you don't describe or quote from them)
but they are "merely aggregated on the same storage medium".


As a practical matter, I'd:
- Ask some of the major contributors to the bits you're working on.
"I'm pretty sure this is fair use, but I don't want to have to go
through a lawsuit to prove it. Are you going to be very upset if I
quote chunks of your code?" If someone is says "yes, I don't like it",
THEN you need to go see a lawyer and get your ass covered if you
want to go ahead.

- On the copyright notice page of the book, explain that the Linux code
is copyrighted by its various authors and the book does not claim
copyright over it. There's no need to explain the GPL here; it's
just a matter of not asserting ownership.

- The same notice on any code dump appendix. Make it as "separate" a
thing as possible. For example, you might change the running header
and footer.

The first point is the important one. It will also help you assert the
good faith fair use defense in 17 USC 504(c)(2). For avoiding hassles,
it's more important to avoid the lawsuit than to worry about whether
you'd win it. (Of course, with rational people, a good argument that
you probably will win it will help discourage the lawsuit.)


Frankly, I don't think anyone's going to object. You would have heard
carping about the other Linux kernel code commentary books if people
objected.

2005-02-03 13:02:28

by Helge Hafting

[permalink] [raw]
Subject: Re: Copyright / licensing question

[email protected] wrote:

>I'll respond in terms of U.S. law; if you want something else, please
>mention it.
>
>You might find a lot of useful information at
>http://fairuse.stanford.edu/Copyright_and_Fair_Use_Overview/chapter9/index.html
>http://www.usg.edu/admin/legal/copyright/#part3d3a
>http://en.wikipedia.org/wiki/Fair_use
>ttp://http://www.nolo.com/lawcenter/ency/article.cfm/ObjectID/C3E49F67-1AA3-4293-9312FE5C119B5806/catID/2EB060FE-5A4B-4D81-883B0E540CC4CB1E
>
>
>
>>1. For explaining the internals of a filesystem in detail, I need to
>> take their code from kernel sources 'as it is' in the book. Do I need
>> to take any permissions from the owner/maintainer regarding this ?
>> Will it violate any license if reproduce the driver source code in
>> my book ??
>>
>>
>
>This is exactly the sort of "Comment and criticism" that is anticipated
>and covered by the fair use exemption. In judging whether the use is
>fair, 17 USC 107 says:
>
>
Nice analysis, but is it necessary in this case?
GPL is somewhat special, in that it allows unlimited distribution of
unmodified and modified code, as long as:
1. The copyright notice remains - trivial to do in a book by keeping the
copyright notices. A book tend to have a copyright notice of its own,
where he may mention the different licence/copyright for the code parts.
2. He offer the sources to anyone interested - again trivial because the
book actually distributes the source in written form. So he won't
need to
set up a ftp server the way binary vendors usually have to.

So I believe he'll be fine as long as he makes it clear that the source
code listings
have a different copyright from the rest of the book - i.e. people can
copy and use that
code in all the ways the GPL permits.

"Fair use" and such is nice to have, but one doesn't need to invoke it
when the
source code in question already offer a unlimited redistribution
licence. Printing the
code in some book is just redistribution, after all. He have to make
sure he prints the GPL
along with the code, that's about it.

Helge Hafting