|
Message
From: Jecel Assumpcao Jr<jecel@m...>
Date: Sun Jan 9 17:30:35 CET 2005
Subject: [oc] License
Giacomo Bernardi wrote on Sun, 9 Jan 2005 12:02:50 +0000 > I can't understand very well why the hardware would require a different > license from software.
Most people here don't seem to understand this, which is why this discussion isn't going anywhere until we step back and agree on the basic terms and issues. Note that I am not a lawyer and what follows is all from memory, so I will eagerly await corrections.
[Copyright]
Originally only for books, over the years the set of laws that govern copyrights has been extended as required by the evolving reality. An interesting example for us was when it was decided that player piano rolls were copyrightable even though they were meant to be read by a machine instead of a person.
Though it is easy to forget today, software wasn't automatically assumed to be protected by copyright. In Brazil, for an example of a Berne convention country (an international treaty that tried to keep local laws in sync), a special law had to be passed in late 1987 to extend copyright to software. Before that what we call "piracy" was perfectly legal. I don't remember when the law was extended in the US, but it was probably in the 1960s or 70s. The US also started to allow software to be patented around 1981 or so, but that is another story.
Another interesting extension from the early 1980s which is interesting for us was then the US and Japan agreed to allow integrated circuit mask artwork to be copyrighted. We will get back to this later.
[Public domain, Licenses]
It is very, very important for us to understand what exactly GPL or BSD style licenses do for us and how they contrast with the End User License Agreements (EULAs) that the commercial software producers normally use.
First copyright laws again: what they say is that only the copyright holder (normally the original creator or someone who hired him) can create copies of the material. I can't and you can't. It is a crime for us to do so. But the law also says that the copyright holder can extend that right to any person he chooses under any conditions he wants. The best way to do that is to make use a a separate set of laws: the contract laws. He can have a contract with three of his friends and now they can also make copies of the material and it isn't a crime for them to do so.
Now this situation doesn't last (or shouldn't, at least) forever. After some time the material is declared to belong to the "public domain" and anybody at all can copy it. What if you want to allow everybody to copy your material before that time is up? You can explictly put that material in the public domain any time you want. The problem with this is that somebody can get a copy of the material and then decide to sue you for some damage they feel this might have caused them. If the material had naturally become part of the public domain you would be long dead by this time and wouldn't have to worry about this, but by doing it early it could be a problem.
So an alternative is to create a contract with everybody. Of course you don't want to go into every place in the world and sign a paper with every person, but it is possible to draft the contract so that a judge will be satisfied that both parties agreed to it even if they have never actually met. Let's look at the GPL license, for example (though in this particular discussion the BSD is exactly the same). Some random person who has a program in his computer can't share it with me - it is illegal for him to copy it. But there is some text on his machine which is a contract with the original author. We can assume that the author agreed to it and if my friend also agrees to it then he can give me a copy legally. How does he prove that he agreed with it? The very act of distributing a copy is defined in the contract itself as proof of acceptance.
Note that I, the receiver of the copy, don't have to agree with the GPL. It also doesn't say anything about what I can do with the program. Only if I want to distribute the program myself, which the copyright law forbids, do I have to look at the GPL and decide to accept it. It doesn't take anything away from me (a common misconception) but instead adds stuff that I normally wouldn't have. One of the things me and my friend have agreed to is that the original author is not responsible for any damages we might have as a result of using the program. Note that we can still sue the author (nothing can prevent that, which is another common misconception) but now it is less likely we will win and it would probably be easier and less costly for the author. So there is *some* protection in that. Of course, *before* I agreed with the GPL to distribute the program I already was using it and had not yet agreed to not hold the author responsible for damages. In practice this is not likely to make any difference.
The EULAs are also contracts. They are also known as "shrink wrap" agreements since they usually have a term that says that the proof that you agreed to the contract was the removal of the shrink wrap around the box which the software came in. Unlike the previous example, it is the person receiving the program that is bound to the contract, not the person copying it (which is not the store in any case but the original factory) so the copyright laws don't apply at all. This contract does not grant you any rights that the law doesn't already give you, but in fact takes some away. There is some debate about whether it can do that, but we will just assume it can. So normally I have the right to measure how fast the program is while running it and then write a magazine article about what I found. The contract might forbid me to do that. It might not allow me to use the program for some purpose or other or it might require that I only use the program while upside down!
There reason why I have gone into all this in such detail is because
some people seem to want things from the license that an EULA will give
them while writing it in a Open Source License style. That won't work.
[different forms]
What is this "material" I have been talking about so far? Whatever the
original author typed in is obviously one example. But if someone
modifies it in some way then we will have a "derived work" related to
the material and subject to all kinds of rules we won't go into here. A
more interesting modification for us is when some mechanical translation
process is applied. Like if we use the Unix program "sed" to replace all
variables named "jxk4" with "khg", for example. To a judge that would
look like a slightly different form of the *same* work. Any teacher
would say the same thing as well. A little less obvious is the case when
the original was a C program and we translated it automatically to
Pascal or to x86 machine language, but I think we can all agree that it
is still the same program and so any copyright restrictions should
continue to apply.
Now imagine that the "material" is a picture I have drawn. This picture
happens to be the schematic for some circuit I invented but that doesn't
really matter in terms of copyright. Nobody in the world can make copies
of that drawing except for me. If we translate it into a different form
(a text with the netlist, for example) that restriction should still
apply. The interesting thing is what happens if I give this drawing (in
whatever form) to five people. Copyright law keeps them from giving it
to other people in turn, but imagine one person builds the circuit
described by the drawing and then sells it to someone else. Is that
circuit just another form of the drawing? THIS IS IMPORTANT! Some of us
are tempted to answer yes, but my experience tells me that many people
(including any judges we are likely to meet) will answer no. Richard
Stallman thinks the answer is no, which is the reason he has said the
stuff he said about free hardware on this very list.
So controlling how people copy the material we produce will not be
enough for some of us. Commercial use of our cores is not copying but
*using* them. I will agree that the case of bitstream files for FPGAs is
fuzzy, but for ASICs I hope we can all agree on this.
The reason why the IC mask artwork copyright extension worked was that
you can't make the chip without the mask and you can't get a copy of the
mask unless the author gives it to you. Taking a picture of the chip to
generate a mask is still illegal. But if I have some board and then I
draw a schematic from it after probing it with a multimeter, I will not
have a copy of the schematic that was used to create it. It will be a
different drawing. Even if 100% equivalent, it was not mechanically
dirived from the original.
The bottom line: the difference between hardware and software is that
for software we can control just copying and let people use it however
they want if we don't want to be as nasty as commercial software. But
for hardware redistribution is using our material and not copying it, so
if we want more control then we need to be more EULA style.
Note that even an EULA contract with restrictions might not have as much
"teeth" as an Open Source license since it is easier to get a jury to
agree with you when granting new things than when trying to forbid. So
one solution is to have one or more patents associated with your design.
Now patent law will be forbidding the person who got your material from
building stuff with it and you can write a contract that will allows
this under your terms.
I hope that helps,
-- Jecel
|
 |