Re: Defining 'preferred form for making modifications'
Anthony DeRobertis <email@example.com> writes:
> 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)]
There is nowhere any requirement in the GPL that source can be
automatically compiled, and in cases like the ones under
consideration, it cannot be.
GPL 3(a) says nothing about automatic transformation; it speaks of the
"corresponding" source, but nothing says that the corresponding source
must be automatically translatable.
> 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.
It seems to me that if you are right, then there is no way to enforce
the GPL: because then someone could simply modify the object file in
some interesting and useful way (say, to change a string constant,
usually pretty easy), and then claim that the C code isn't source at
all, and thus need not be distributed.
I submit that this is therefore clearly *not* the correct
interpretation, and that in such a case, the original C code is still
an essential part of the source, even though it no longer can be
automatically transformed into the binaries that you are distributing.