On Tuesday, Jun 24, 2003, at 16:36 US/Eastern, Thomas Bushnell, BSG
wrote:
Why would C stay the preferred form for modifying a work for eternity,
even when the current work bares hardly a resemblence to its C
original?
It is *PART* of the source. Not the whole source, but part of it.
Well, "The source code for a work means the preferred form of the work
for making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to control
compilation and installation of the executable." (GPL 3)
To be source code for the new version, the C original would have to:
a) be a form of the (new) work
b) be a the form that modifications would be made to
c) it must be possible to transform the source code form into the
object or executable form [implied by (b) and GPL 3(a)]
In the scenario above, the C code clearly fails (c) for all reasonable
amounts of effort[0]. It does not correspond to the executable; it can
not be transformed into the executable. Because it can't be transformed
into the executable, (b) fails: No one prefers to modify the wrong
program! It's questionable if the C code even passes (a).
Thus, since it's not the preferred form for making modifications, it's
not source code (under the GPL definition).
So, essentially, you're saying that for either images or translations
to other programming languages, the GPL is a original source + patches
license? Does this apply to human-language translations as well? What
about changes to C code in C?
No, that's not what I'm saying. What I'm saying is that editing a
binary cannot remove your obligation to distribute the C source which
produced that binary, even if you do a bunch of significant extensive
edits, even if you threw away the C source.
I think it's silly to say that translation to assembly is any different
than translation to C, Pascal, Fortran, COBOL, BASIC, Intercal, etc.,
from a legal standpoint: If it's just an automated translation, it's
clearly "object" form under the GPL, and the preferred form is still
the original. If it's a largely manual translation, it's now the
preferred form, object or not.
[0] Its possible to recompile the C code and then re-make (by hand) all
the extensive changes to the assembly output, of course.