gnu-misc-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GPL traitor !


From: Rjack
Subject: Re: GPL traitor !
Date: Thu, 18 Jun 2009 18:00:02 -0400
User-agent: Thunderbird 2.0.0.21 (Windows/20090302)

Hyman Rosen wrote:

Nevertheless, the author maintains the exclusive right to authorize
 copying and distribution, and this right is very fine-grained. One
 example is authorizing one publisher to produce hardcover versions
 of a novel and another publisher to produce paperbacks. Similarly,
 while the binary and the source are a single work for purposes of
 copyright, the author has the exclusive right to control the form
 in which he permits copying and distribution.

(Having the source and binary be considered a single work does not
mean, of course, that the binary may contain other copyrighted elements without permission.)

You are as wrong as wrong can be. As usual.

Are you seriously suggesting that I can't compile unmodified GPL'd
source code and release the result under the GPL license? Hmmmmm...

I'll bet many GNUtians would be unhappy with your conclusion since GPL
sec. 2 allows this. Source to object compilation is without question a
"translation" from one language (source languge) to another (object
language) that comprises a derivative work. Notice that the GPL is
explicitly agnostic with respect to the choice of source code language:

"The source code for a work means the preferred form of the work for
making modifications to it."

I prefer assembler or machine readable code, since I grew up on IBM
assembler programming. Note how the GPL has a hole a mile wide:

http://74.125.95.132/search?q=cache:5VqsHjv0lvgJ:www.cs.cmu.edu/~dst/DeCSS/object-code.txt+Source+vs.+Object+Code:+A+False+Dichotomy&cd=1&hl=en&ct=clnk&gl=us


*************************************************************************
The following is the verion of my essay on source vs. object code that
was submitted to the Court in the New York DVD trial on July 25, 2000.
This is still only a rough draft.  It needs more work, but we ran out
of time.

A number of people contributed information and insightful comments
that improved this draft or helped to fine tune my testimony.  I'd
like to thank Hal Abelson, Andrew Appel, Mark Fuhs, and Scott Goehring
for their assistance.

-- Dave Touretzky

================================================================

        Source vs. Object Code:  A False Dichotomy

                David S. Touretzky
                Computer Science Department
                Carnegie Mellon University

        *** DRAFT VERSION OF JULY 12, 2000 ***

...

1. "Source" and "object" are not well-defined classes of code.  They
are actually relative terms.  Given a device for transforming programs
from one form to another, source code is what goes into the device,
and object code (or "target" code) is what comes out.  The target code
of one device is frequently the source code of another.  For example,
both early C++ compilers and the Kyoto Common Lisp compiler produced C
code as their output.  C++ (or Common Lisp) was the source language; C
was the target language.  This output was then run through a C
compiler to produce symbolic assembler code as output.  This then had
to be run through yet another proram, the "assembler", to produce
binary machine code that could be directly executed by a processor.

In summary, programs typically go through a series of transformations
from higher level to lower level languages.  The assembler language
code that a C compiler produces as "object" code is source code for
the assembler.  Today, the GNU C compiler (known as gcc) will deliver
assembler language code instead of binary if the user requests it by
specifying the -S switch.

2. Even binary machine code is perfectly readable by humans.  It was,
after all, designed by humans.  It may be tedious to read, but this
can be helped somewhat by using a program called a disassembler to
translate the raw binary instructions back into symbolic form.  For
example, the Pentium instruction "add 7 to register AL" is written
0000010000000111 in the machine's binary language; it is written in
symbolic form as "ADD AL,7".  (Reference: Intel Architecture
Developer's Manual, 1997 edition, volume 2, page 3-17.)  Converting
between these two forms is trivial.

...

********************************************************************

Sincerely,
Rjack







reply via email to

[Prev in Thread] Current Thread [Next in Thread]