Re: firmware is just data. we need to decide our rules for data.
Henning Makholm wrote:
> Scripsit John Hasler <email@example.com>
>> I think it may be reasonable to distinguish between "Someone has the
>> source but won't let us have it" and "The source no longer exists".
> How about "Somebody had the source but he intentionally destroyed it
> because he'd heard that we would then consider the binary free"?
Well, that's perverse, but then he's sabotaged himself as well...
Warning: excessive detail ahead.
I think that the GPL's definition of source -- "preferred form of the work
for making modifications to it" -- is a good start. So I'm going to
discuss the nature of "source code" entirely based on that here; if you
want to start without this premise, please ignore this entirely. :-)
The next question is, *whose* preferred form for modification? (Well, only
in the cases where people might disagree -- if reasonable people wouldn't
disagree, there is no issue.) For the GPL, the license is issued by the
copyright holder, so where there's ambiguity (and only where there is), the
copyright holder's interpretation is likely to be controlling. So this
would probably be the copyright holder's preferred form for modification.
The *author's* preferred form form modification is probably a good
interpretation anyway, because asking for a form which the author doesn't
like to use is sort of perverse and unlikely to get good results even with
very helpful authors. (When the author is not the copyright holder things
are messier and less clear to me.)
So if an author or copyright holder genuinely provides his preferred form
for modification, I think that should qualify as providing source.
At this point, we are investigating questions of fact; specifically, facts
about authors' mental states (what they 'prefer'). Admittedly such things
are difficult to make any definite statements about. However, if we assume
that the authors are programmers behaving in ways which are not completely
perverse, we can come to some tentative conclusions (which of course could
be wrong for specific cases where we had specific evidence to the
Now, "preferred" is a term referring to selection of one out of a group. If
there is only one form of a work, it is therefore the preferred form. If
the author destroyed all copies his source code, the machine code -- or
more likely a disassembly of it -- is now *his* preferred form for
modification as well. :-P
This interpretation does imply that if he lost the source code, the object
code could temporarily be the preferred form for modification, but if he
then found it again, it would no longer be. I think this is actually
correct, and mirrors the actual behavior of programmers in cases where this
I suppose that lumps of machine code in hex could be somebody's preferred
form for modification *even* when other forms exist. I find that to be
deeply unlikely (and therefore a claim requiring actual evidence), since
I've never met a programmer who actually *preferred* editing machine code
over editing assembly.
Some people have suggested that we should *assume* that the lump of machine
code in hex is the only form which exists unless we have proof to the
contrary. I think this is backwards, because in reality most machine code
is generated from another source, and most programmers and companies don't
throw their source away. So this would assume an unusual state of affairs,
which doesn't seem reasonable. I think we should assume that another form
exists unless we have evidence that it doesn't (the author saying that it
doesn't, for instance).
Now, a lot of this argumentation would fall apart if the author never wanted
to modify his code, ever; then he would have no "preferred form for making
modifications", since he would never ever make modifications. I only
mention this because some people appear to have been using a similar
argument to support allowing certain types of stuff into 'main'; I do not
see any evidence, however, that this is ever really the case.
As far as I can tell, this almost never happens in the case of executable
code, where there's always some reason or desire to make a tweak. (For
*extremely* short snippets, maybe, but probably only ones short enough to
contain no originality.) It never happens with documentation, which can
always be improved. It rarely if ever happens with essays. It certainly
never happens with non-fiction writing. According to most of what I've
read by fiction writers, it doesn't happen much with fiction writing
either. It might happen with oddities like checksums under rare
circumstances, I suppose.
There are none so blind as those who will not see.