LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Find Resources
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cores > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Jecel Assumpcao Jr<jecel@m...>
    Date: Sun Jan 9 17:30:35 CET 2005
    Subject: [oc] License
    Top
    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

    Follow upAuthor
    [oc] LicenseNicolas Boulay

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.