This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Results of "downloading compressed program images" request


>>>>> "Stephen" == Stephen Williams <steve@icarus.icarus.com> writes:

    Stephen> rj@eli.elilabs.com said:
    >> Why does an embedded system impose special considerations for
    >> licensing?  If you are concerned about distribution in binary
    >> only form, this is allowed, provided that you give a reference
    >> to where the source may be found.

    Stephen> This is pushing the envelope, because the customer that
    Stephen> buys a toaster with a ROM filled with GPLed software has
    Stephen> no means to modify that ROM.  There is in practice no
    Stephen> "preferred form of the work for making modifications to
    Stephen> it" because the customer has not been given the means to
    Stephen> load a modification, or even link it. Nor can he. Likely,
    Stephen> special hardware is required, possibly not available to
    Stephen> anyone other then the toaster maker. 

Not true.  You have been listening to the lawyaers, when they should
retain your services as expert and listen to you!  They know law, but
they do not know the technology.  You must educate them in the
technology so they can advise you as to how the law might be applied
to it, and what your best course of action should be.

The prefered form of the work means the form prefered by "those
skilled in the art", which means other software engineers, not
necessarily the end user.  You are required to provide the end user
with the information, not the tools or the skills.  If he has those
skills and tools, and wants to mess with your the firmware, fine, but
all warrantees are null and void.  This needs to be clearly stated in
the same text that gives the URL for obtaining the "preffered form of
the medium", which as already stated in an earlier post, is a
relocatable object file.  

So, to give a concrete example, lets say that I am Mr. B. C Dull (a
friend of Donald Knuth's), a computer hobbiest with more money than
sense.  I buy one of your toasters.  I think that I should have to
double click on the toast icon to eject the toast, but your firmware
says I must drag the toast icon from the furnace window and drop it in
the plate window to do this.  I look on the decal on the bottom of the
toaster and get the URL to obtain the relocatable object library that
provides the non-GPLL-ed part of the toaster firmware.  I also get the 
URL for the GPLL-ed library sources.  I ftp both tars and study the
library code.  

I find the part of the library that supports drag and drop, and edit a
#define to change the metaphor from drag and drop to double click.  I
then compile and ar and ranlib the new version of the GPLL-ed library.
Next, I link that library together with your library using the
makefile provided with your library.  I then do a make romimage to
produce a Motorola S-record file that represents the ROM contents for
the new toaster firmware.

Now I take a screwdriver to the toaster, after peeling off the REMOVAL
VOIDS WARRANTEE stickers.  I find the microprocessor and observe that
it is an 8051.  I call Hamilton HaveNot and order an 8031 together
with a programmer for the device.  Wjile I am at it, just to be sure,
I also order Intel's I^2 ICE so I can debug the thing.  Remember, I
have more money than sense, and I have the skills.  I am
Mr. B. C. Dull, a friend of Donald Knuth's!

The 8031 arrives along with the programming fixture and the emulator a 
few months later.  I gleefully hook everything together and plug in
the ICE.  I load the new Srec file into the ICE's ROM simulator and
try out my changes.  Hmmm...  I notice that the toaster's LCD active
matrix mini-screen has different colors.  Oh well, I can fix that
later.  Lets see how the double-click mod works.  I press, release,
press, and before I can release the toast pops out.  Close but not
quite right yet.  Not bad for the first try.  I look again where the
double click mod was made and notice a "<=" where I should have had
just a "<".  I edit, remake, reload, and try again.  It works.  Good!
Now I go back and fix the colors, but since the original colors never
really went with my kitchen decor too well, I whump up a custom color
combo instead.  I make and load again.  All is well.  

I turn everything off, disconnect the ICE, and blow the EPROM in the
8031, then install the 8031 where the 805`1 was originally installed.
This is a pain, since it was not socteted, but 2 rolls of solder wick
later, it is done.

I am now the proud owner of the only toaster of its kind that matches
my kitchen decor in the screen colors, and has the (to me) more
desirable double click instead of dra and drop eject toast command.

This souts me to a tee.  My friend Norman Q. Nerd comes over for
breakfast the next day and really likes it.  He wants a toaster like
that too.  I tell him that he must go buy a stock toaster, and get the 
object code for the non-GPLL-ed part of the firmware for himself in
order to comply with the letter of the law.  He does this by going
into my computer room and doing the ftp for himself, giving his name
and toaster serial number in the HTML form just like I gave mine when
I got my copy.  After this is done, he orders another 8031 for
himself.  When it arrives, I program it for him.  It is not necessary
for him to do another make, since the targets are all up to daye
anyway.  I am allowed to give him my modifications to the GPLL-ed
library, but since this constitutes distribution, I make a patch file
freely available through my website, licensed by the GPLL.

Another friend, Mr. Ty Coon (a friend of Richard Stallman's), sees the 
modified toaster and thinks we ought to go into business selling
modified toasters.  I tell him this is prabably not a good idea, but
the next day we go talk to his intellectual property lawyer about it.
I cannot divulge the results of that discussion because Ty had me sign 
a non-disclosure agreement first!

While I, Mr. B. C. Dull can freely (in the GPLL sense) obtain and use
the GPLL-ed library sources, I only have a license to use your
firmware (the non-GPLL-ed object library part) on a single toaster,
and may not divulge the information contained in the object code I
download to third parties.  This too needs to be stated explicitly on
the label on the bottom of the toaster.

-- 
--------  "And there came a writing to him from Elijah"  [2Ch 21:12]  --------
Robert Jay Brown III rj@eli.elilabs.com  http://www.elilabs.com 1 847 705-0424
Elijah Laboratories Inc.;  37 South Greenwood Avenue;  Palatine, IL 60067-6328
-----  M o d e l i n g   t h e   M e t h o d s   o f   t h e   M i n d  ------