Lourens Veen wrote:
On Wednesday 04 October 2006 09:34, Nicolas Boulay wrote:
> Hardware can't be easly change as software and cost something. But
> the open hardware "user", user in the GPL way, are not the same.
> Open hardware user are soc designer or board designer, they deal
> with copyrighted material, plan and ideas. That's not the case with
> the buyer of the hardware. He can't be protected by a licence based
> on copyright or very hardly (you can't link a final product with
> the licence on the hdl code, you can only restrict the use of the
> hdl code).
So, it isn't the case that the ASIC mask is derived from the HDL, and
the actual chip is derived from the ASIC mask, producing chips is
copying the copyrighted design and selling them is distribution?
It is, or at least can be. But this is where a more specific "open
hardware license" could help, by making clear what kind of requirements
are placed on each level of distribution.
Naively, most people would tend to think of creating an in-house
derivative design of a GPL'd design document, then manufacturing and
distributing parts manufactured from the derivative design would not
violate the GPL (because they're using the design, not just copying it).
However, for an open hardware project, that is a breakdown of the
desired copyleft (improvements to the design do not get folded back into
the project or passed on to the user).
We want the act of distributing the hardware based on the modified
design to constitute "modification + redistribution", so that we can
require source distribution in that case. However, it's legally
ambiguous whether this is is the case. A license (or super-license --
that is, an explanatory license grant) which is clear on this point
would improve the situation.
And of course, there is a possibility of greater subtlety. Clearly a
"specifications document" which says only what interfaces a desing must
provide shouldn't confer copyleft privileges on any hardware that
conforms to it. But a PCB created from a Gerber plot or an ASIC created
from a mask pattern should.
Another issue is the "platform layers" issue. The GPL requires that all
components combined with it to make a working program must also be under
the GPL. But this clearly becomes a problem when we cross "platform"
boundaries: that's why the GPL as written explicitly exempts the
operating system.
But what if it didn't? It might be argued that the GPL would then
require GPL programs to be run only on GPL'd operating systems, running
on GPL'd computers, with GPL'd PC boards, with solely GPL'd chips,
composed of GPL'd "IP Cores", made from GPL'd metals and plastics (i.e.
no proprietary materials).
I think most of us don't want that.
So when we apply the idea to hardware, we assume that, e.g.:
1a) Proprietary or free materials may be used in free chips
1b) Free chip materials may be used in proprietary chips
2a) Proprietary or free chips may be used in a free PC board
2b) Free chips may be used in a proprietary PC board
3a) Proprietary or free PC boards may be used in a free PC
3b) Free PC boards may be used in a proprietary PC
4a) Proprietary or free PCs may be used for free software O/Ss
4b) Free PCs may have proprietary O/Ss installed on them
5a) Proprietary or free O/Ss may be used as a basis for free applications
5b) Free applications may be used on proprietary O/Ss
and so on.
Note how these occur in pairs: one corresponding to the "platform
exception" (you can use proprietary low-level materials in a free
high-level design) and the other corresponding to the "mere aggregation
exception" (you can combine GPL and non-GPL components in a collection
if they are not tightly bound).
Note also that I've assumed this is all in a PC, and not a rocket ship
or a robot. Those kinds of systems would introduce other layers:
mechanical or mechatronic components, separate electrical and plumbing
systems, spaceframe, etc.
This strikes me as pretty intuitive for any given case, but a bit
difficult to codify in a general way. If there is a generic way to
codify it, it's probably with the language of systems engineering:
"sub-systems" and "systems". However, it's important to realize that
the interface points between different sub-systems in a system, and the
line between separate sub-systems and separate systems is vague and
tends to be decided on a system-by-system case by engineers. Our PC
example is relatively clear-cut, because it's already such a heavily
system-engineered, highly commoditized product.
In the software world, the biggest ambiguity is probably the issue of
shared libraries, and this is why there is an LGPL. The new LGPLv3
arises as a simple extension of the new GPLv3, though, suggesting the
possibility that GPLv3's extension language might be powerful enough to
define hardware-applicable terms without having to break GPL
compatibility (which would be handy, because, e.g. Open Cores already
has lots of stuff available under the existing GPL).
Have I mentioned I wrote a seven article series in Free Software
Magazine on this topic? Articles 1 and 6 are probably particularly
relevant to the licensing question:
http://www.freesoftwaremagazine.com/articles/free_matter_economy
(this includes a section on the "layers of freedom" or "platform" issue)
http://www.freesoftwaremagazine.com/articles/free_matter_economy_6
(this is about general legal problems associated with free-licensed
hardware)
Cheers,
Terry
--
Terry Hancock ([EMAIL PROTECTED])
Anansi Spaceworks http://www.AnansiSpaceworks.com
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)