License
by Unknown on Jan 9, 2005 |
Not available! | ||
Le dimanche 9 Janvier 2005 12:28, John Sheahan a écrit :
Giacomo Bernardi wrote:
> I can't understand very well why the hardware would require a different
> license from software. its worth remembering the GPL is based in copyright law, which does not actually apply to a hardware product. I see little point in choosing a copyright law apply to hdl source code. There is some more special protection for "silicon improvement" but i never find somebody to explain about this special protection.
license that is unlikely to stand up to serious challenge (for a
physical product that is). Thats only going to dissuade those likely to assist, (and the converse)
> The GPL license, and the LGPL too, defends not only the rights of the
> author, but especially the rights of the author as a part of a > community. surely the author gets to choose. Hardware is different to software, I see these as very software oriented arguments... While the GPL suits some things fine, its not appropriate for many things.
> An example is the spice program of Berkeley. It was first developed at
I never actually found an explicit license for the original spices.
john
_______________________________________________
http://www.opencores.org/mailman/listinfo/cores
> Berkeley and realesed with BSD license. |
License
by Unknown on Jan 10, 2005 |
Not available! | ||
Thanks Jecel, the question is now much more clear to me.
|
License
by Unknown on Jan 11, 2005 |
Not available! | ||
i learn a lot but how could explain that a patent could be a solution ?
Patent cost money ! nicO Le dimanche 9 Janvier 2005 17:30, Jecel Assumpcao Jr a écrit :
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
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
_______________________________________________
http://www.opencores.org/mailman/listinfo/cores
> license from software. |
License
by Unknown on Jan 11, 2005 |
Not available! | ||
Nicolas Boulay wrote on Tue, 11 Jan 2005 00:33:32 +0100
i learn a lot but how could explain that a patent could be a solution ?
You are absolutely right. Even worse: a patent is only valid in the
particular country that granted it. Even taking advantage of the PCT
(http://www.wipo.int/pct/en/) to reduce costs for filing in foreign
countries you can't hope to spend less than $50K just to cover your key
markets.
In contrast copyrights are free and valid internationally. Another
problem with patents is that if you do get one, IBM and others will have
many thousands. It is silly to get into a fight with them (like Patriot
Scientific is doing over the ShBoom Forth chip patent).
But patents allow you to control people who try to build and sell
hardware using your designs and copyright doesn't.
So what can be done? We have two cases:
- people who want to allow unrestricted commercial use of their cores
In that case there is no attempt to control the use, so a variation of
the BSD license is good enough. It uses copyright to make sure everyone
who gets a copy of the core agrees not to sue the author (not quite -
actually just those who distribute copies, but close enough in
practice).
- people who want to force companies using their cores to contribute
back any improvements they make
The GPL won't do this, as I explained in the previous email. You have to
force each person receiving the core into a contract with you, and not
just those who are distributing it.
One solution is to have a closed group so that you have to agree to some
terms before joining the group and only then can you get a copy of the
core. Copyright law will keep you from distributing it to anyone not
belonging to the group. This is what Sun did with the PicoJava and
MicroSparc cores, for example. I have a copy but I can't give it to you.
Sun came under harsh criticism for calling this "open hardware", but in
practice you can easily join the group and get a copy from Sun instead
of me. The problem is that you have to trust them not to stop doing this
in the future, while truly free solutions don't allow the author to
change his mind.
On the Open Cores website I noticed that some cores are easily
downloaded anonymously while others require you to log in before you can
get them. This could be easily expanded to something similar to what Sun
did (not that I am suggesting it - just pointing out a possibility).
So the solution to using copyright to enforce some terms on the *use* of
a core is to forbid people who have a copy from giving one to anybody
who has not agreed to those terms. Copyright doesn't even allow them to
distribute to those who have agreed, but the contract can allow that. If
someone is using the core in conditions not permitted by the contract
then they are either in violation of that contract themselves and can be
sued or they got a copy without agreeing to the contract and the person
who gave it to them is in violation and can be sued.
Personally, I prefer the BSD route. Previously I had seriously
considered the use of two patents (just one would be too risky since it
can be judged to be invalid, while more than two would be far too
expensive) to force people to contribute back any improvements (or to
negotiate an alternative license with me and pay royalties). Now I am
thinking of a scheme were the cores are kept secret until the next
version is ready, then the previous version would be released under a
BSD-like license. I am not happy with this (which is similar to how
GhostScript is licensed) but it seems to strike a balance between my
need to make some money and my wish to make it available to others
without restrictions.
No single solution will make everybody happy here. But having eight
different solutions (licenses) is sure to make us all unhappy. So we
should review the basics and then create a few (probably two; at most
three) standard alternatives with reasonably well understood
consequences.
-- Jecel
Patent cost money ! |
License
by Unknown on Jan 11, 2005 |
Not available! | ||
Le mardi 11 Janvier 2005 13:51, Jecel Assumpcao Jr a écrit :
Nicolas Boulay wrote on Tue, 11 Jan 2005 00:33:32 +0100
> i learn a lot but how could explain that a patent could be a solution ?
You are absolutely right. Even worse: a patent is only valid in the
particular country that granted it. Even taking advantage of the PCT
(http://www.wipo.int/pct/en/) to reduce costs for filing in foreign
countries you can't hope to spend less than $50K just to cover your key
markets.
In contrast copyrights are free and valid internationally. Another
problem with patents is that if you do get one, IBM and others will have
many thousands. It is silly to get into a fight with them (like Patriot
Scientific is doing over the ShBoom Forth chip patent).
But patents allow you to control people who try to build and sell
hardware using your designs and copyright doesn't.
So what can be done? We have two cases:
- people who want to allow unrestricted commercial use of their cores
In that case there is no attempt to control the use, so a variation of
the BSD license is good enough. It uses copyright to make sure everyone
who gets a copy of the core agrees not to sue the author (not quite -
actually just those who distribute copies, but close enough in
practice).
- people who want to force companies using their cores to contribute
back any improvements they make
The GPL won't do this, as I explained in the previous email. You have to
force each person receiving the core into a contract with you, and not
just those who are distributing it.
> > Patent cost money ! Is this possible in the contract with the chip builder to force them to release the code with the chip ? You say that some people will not interpret chip as a result of the copyrighted material. So there is no link between the copyright holder and client of the chip. But is this possible to add an obligation in the licence to give access to the source code with the chip ? Is it possible de force the cip maker to provide such access ? Does i miss something ?
One solution is to have a closed group so that you have to agree to some
terms before joining the group and only then can you get a copy of the
core. Copyright law will keep you from distributing it to anyone not
belonging to the group. This is what Sun did with the PicoJava and
MicroSparc cores, for example. I have a copy but I can't give it to you.
Sun came under harsh criticism for calling this "open hardware", but in
practice you can easily join the group and get a copy from Sun instead
of me. The problem is that you have to trust them not to stop doing this
in the future, while truly free solutions don't allow the author to
change his mind.
On the Open Cores website I noticed that some cores are easily
downloaded anonymously while others require you to log in before you can
get them. This could be easily expanded to something similar to what Sun
did (not that I am suggesting it - just pointing out a possibility).
So the solution to using copyright to enforce some terms on the *use* of
a core is to forbid people who have a copy from giving one to anybody
who has not agreed to those terms. Copyright doesn't even allow them to
distribute to those who have agreed, but the contract can allow that. If
someone is using the core in conditions not permitted by the contract
then they are either in violation of that contract themselves and can be
sued or they got a copy without agreeing to the contract and the person
who gave it to them is in violation and can be sued.
Personally, I prefer the BSD route. Previously I had seriously
considered the use of two patents (just one would be too risky since it
can be judged to be invalid, while more than two would be far too
expensive) to force people to contribute back any improvements (or to
negotiate an alternative license with me and pay royalties). Now I am
thinking of a scheme were the cores are kept secret until the next
version is ready, then the previous version would be released under a
BSD-like license. I am not happy with this (which is similar to how
GhostScript is licensed) but it seems to strike a balance between my
need to make some money and my wish to make it available to others
without restrictions.
No single solution will make everybody happy here. But having eight
different solutions (licenses) is sure to make us all unhappy. So we
should review the basics and then create a few (probably two; at most
three) standard alternatives with reasonably well understood
consequences.
-- Jecel
_______________________________________________
http://www.opencores.org/mailman/listinfo/cores
|
License
by Unknown on Jan 17, 2005 |
Not available! | ||
RT wrote on Mon, 17 Jan 2005 09:05:57 +0000
You can write any contract you want, but it's pointless if no-one's
going to sign it. Exactly. Though in theory you can write any contract you want within the limits of your local law. For example: in your work contract you might promise not to work in the same industry for five years after leaving your job, but in some states in the US the law doesn't allow you to sign away the right to work anywhere you want and so those words on the contract don't have any effect. You can add a clause saying that anyone using your core must hum Italy's national anthem when compiling it and since this isn't against any law people who don't do this will be violating the contract. But....
Reality check: the 'average' ASIC costs about $6.5M. The OC cores are
not exactly, to be brutally frank, Golden IP, and it would be a very brave person who put an OC core into their own ASIC (at least not without a complete re-write). Double reality check: anyone who can pay $6.5M can probably also pay for more lawyers than us. Do we really want to face them in court? Which is why I said "in theory" in my first paragraph. We *should* be able to win when people make us sign a contract which is against the law and we *should* be able to win when people don't follow a contract term which isn't, but in practice I wouldn't count on it.
What you need right now, IMHO, is a licence which puts no obligations at
all on the user. This increases the chances that your cores will be used. If Open Cores eventually become popular, then you may be in a position to make your licences more restrictive. If Open Cores become popular, more people will be willing to put up with restrictions to use them. But I would say that it is when you have the will and resources to go after any "cheaters" that you will be in a position to put in restrictions. Othewise they will be just a joke. -- Jecel |
License
by RT on Jan 17, 2005 |
RT
Posts: 10 Joined: Sep 2, 2009 Last seen: Sep 27, 2011 |
||
Nicolas Boulay wrote:
Le mardi 11 Janvier 2005 13:51, Jecel Assumpcao Jr a écrit :
- people who want to force companies using their cores to contribute
back any improvements they make The GPL won't do this, as I explained in the previous email. You have to force each person receiving the core into a contract with you, and not just those who are distributing it. Is this possible in the contract with the chip builder to force them to release the code with the chip ? You say that some people will not interpret chip as a result of the copyrighted material. So there is no link between the copyright holder and client of the chip. But is this possible to add an obligation in the licence to give access to the source code with the chip ? Is it possible de force the cip maker to provide such access ? You can write any contract you want, but it's pointless if no-one's going to sign it. Reality check: the 'average' ASIC costs about $6.5M. The OC cores are not exactly, to be brutally frank, Golden IP, and it would be a very brave person who put an OC core into their own ASIC (at least not without a complete re-write). What you need right now, IMHO, is a licence which puts no obligations at all on the user. This increases the chances that your cores will be used. If Open Cores eventually become popular, then you may be in a position to make your licences more restrictive. Richard T |
License
by Unknown on Jan 17, 2005 |
Not available! | ||
RT wrote:
Reality check: the 'average' ASIC costs about $6.5M. The OC cores are not exactly, to be brutally frank, Golden IP, and it would be a very brave person who put an OC core into their own ASIC (at least not without a complete re-write). maybe not rewrite - but at least some serious verification. Then evaluate waht (if anything) is required. Of course - anyone using commercial cores needs to do exactly the same thing. john |