[Linux-aus] Meaning of object code/binary format/executable format in GPL/BSD style licenses
Jon maddog Hall
maddog at li.org
Wed Sep 20 20:28:02 UTC 2006
IANAL, and IANRMS* (and as you will see, I may be pushing the envelope here) but let us
look at this issue in what I perceive to be the *spirit* of the GPL.
The spirit of the GPL wants people who receive binaries of GPLed source code to be
able to modify them, fix them, improve them, etc. These binaries were created by a
person using source code and a "transformation vehicle" typically called a compiler
(interpreter, etc.) It was the wish of the person who wrote the source code (the
copyright holder of that, and the original licensor) that the person who gets the
relatively immutable binaries based on their source also get access to the sources,
even if the sources have been modified along the way by some other programmer.
We can note that you do not have to ship the sources with the binaries, just point
to a place where they can be obtained....e.g. "This binary was generated from the
sources of XXXXX V1.2", and give them a URL link or let them search for the sources.
In general I think that you can assume that if the binary representation of the
source code is valuable to the end user, then you need to provide access to the
sources of that binary under the GPL.
Where I see the GPL not covering this issue completely is that under "normal"
circumstances the "transformation vehicle" is a compiler, and there are many
compilers out there that generate basically the same output, following standards
of some type (either formal or pseudo) of how they are to create the output (binary
code, symbol tables, etc.). These compilers should generate the same basic useful
functionality, with minor differences in compilation speed, code size, execution
speed, etc. The functionality of the generated binary should be the same, modulo
these differences. You could argue that only one compiler would create a binary
small enough to be of interest to an embedded system person, or that only one
compiler would generate a binary fast enough to handle a real-time job, but basically
a compiler compiles to the syntax and semantics of the language.
If your "transformation vehicle" is unique, and creates a *unique* binary transformation
that is useful to the end customer from the sources supplied, would you have to make
the "transformation vehicle" freely available to the customer also, so they could
change the binary if needed, and if so, would you have to provide the source code for
the "transformation vehicle" to the customer also?
I do not believe this latter issue is covered under the GPL, because it may not have
been envisioned as being a problem. Compilers and Interpreters are fairly well understood
and most FOSS programmers would not consider writing in a language that is not
supported by a FOSS compiler. On the other hand, if someone comes up with a
"transformation vehicle" that takes an existing language and transforms it into
a completely different "binary" that is useful to the end customer, yet does not make
the binaries and sources for that "transformation vehicle" public, then most of the
same lock-in issues that happen with closed source and compilers will still happen.
As I said, IANAL and *"I Am Not Richard M Stallman", and what I have been talking
about is what I perceive to be the "spirt of the GPL" vs the "reality of law",
so to be safe the place to go for a reading on this is either to an IP lawyer, or to
the creator of the GPL, or both.
Warmest regards,
maddog
--
Jon "maddog" Hall
Executive Director Linux International(R)
email: maddog at li.org 80 Amherst St.
Voice: +1.603.672.4557 Amherst, N.H. 03031-3032 U.S.A.
WWW: http://www.li.org
Board Member: Uniforum Association
Board Member Emeritus: USENIX Association (2000-2006)
(R)Linux is a registered trademark of Linus Torvalds in several countries.
(R)Linux International is a registered trademark in the USA used pursuant
to a license from Linux Mark Institute, authorized licensor of Linus
Torvalds, owner of the Linux trademark on a worldwide basis
(R)UNIX is a registered trademark of The Open Group in the USA and other
countries.
More information about the linux-aus
mailing list