MIThril Hardware Design GPL Interpretation, v 1.0 Copyright (C) 2001, MIT Media Lab. Building E15, Room 383 20 Ames Street, Cambridge, MA 02139 USA Preamble The purpose of this document is to disambiguate the application of the Gnu General Public License to licensing hardware design. It is the intent of the authors to make clear how the language of the GPL is to be interpreted in the specific case of hardware design documents that are licensed under the GPL as construed by the MIThril Hardware Design GPL Interpretation. MIThril Hardware Design GPL Interpretation Terms and Conditions 0. This interpretation of the GPL applies to any work that contains a notice placed by the copyright holder saying it may be distributed under the terms of the Gnu General Public License version two (or later) as construed by the MIThril Hardware Design GPL Interpretation. 1. The terms "the program" or "other work" shall be interpreted to refer to the hardware design being licensed. 2. The term "source code" shall be interpreted to refer to the files and engineering documents that specify the design, hereafter to be referred to as the "document package." The "preferred form" for the contents of the document package are toolchain- and platform-independent representations. a) The document package MUST include well-specified, human-readable, platform-independent design documents. These documents should be complete and detailed enough to allow another skilled designer to understand the functioning of the design, to produce "compiled" representations and to facilitate the creation of derived works. (See "Note 1" below.) For instance, the document package for a mature, well-elaborated electronic device design would include complete schematics and PCB layouts represented in PostScript, PDF or some other widely accessible graphical form, an ASCII or HTML bill of materials, and complete ASCII net and pin lists. If the design employs programmable logic devices (such as FPGAs, PALs or GALs) the document package would include the Hardware Description Language (HDL) ASCII source code for properly programming these devices. b) For the sake of completeness, the document package SHOULD include the tool-specific representations used to generate the "preferred form" design documents described above, for example Eagle, Protel, or xcircuit design files. However, such tool-chain specific design files are not a substitute for toolchain- and platform-independent representations. (See the "Discussion" section below.) 3. The terms "Binary," "executable," and "object code" shall be interpreted to mean: a) CAM files, FPGA cores, and other "compiled" representations (such as the Gerber and Excellon CAM files used by PCB fabrication equipment) sufficient to execute the design but not intended for human interpretation or modification. b) The physical objects resulting from executing the design (printed circuit boards, sub-assemblies, fully functioning devices, etc.). 4. The terms "running" or "executing" the program shall be interpreted to mean executing the design (fabricating the device) OR using the device resulting from the execution of the design. Discussion Human readability, completeness of representation, and platform-independence are more important for the "preferred form" of the work than providing support for particular design tools, even free tools, since the world of hardware design is currently dominated by closed-source tool chains. As open-source tool chains mature, it may become feasible to standardize the "preferred form" of at least some representations based on these tools. Until then, the burden will be on the designer to produce appropriate documentation for cross-tool-chain development. ---- Note 1: "Completeness" here refers to the description, not the design. A preliminary design may be well documented with less material than a fully elaborated design, and a "production" design intended for turn-key fabrication may require more. The point is that the documentation should be adequate for the intended purpose.