← Back to team overview

kicad-developers team mailing list archive

Release - licenses and legal issues

 

Hi Wayne,
 
thanks for the great work, I'm looking forward to the release. I have several questions about licenses / legal issues:

Is there somewhere an overview of the used libraries / 3rd party software and their licenses? (for instance an list, LibreOffice table or similar)
 
Are all individual (library) licenses compatible with the KiCad license (GPL 2+)?
 
What kind of restrictions do I have to expect when I'm using KiCad for my designs?
 
--
 
I'm asking, because I've seen a few examples which are unclear for me:
 
(1) The GPLv3 is not compatible with the GPLv2
 
Quote from the FSF (http://www.gnu.org/licenses/license-list.en.html):
"Please note that GPLv3 is not compatible with GPLv2 by itself. However, most software released under GPLv2 allows you to use the terms of later versions of the GPL as well. When this is the case, you can use the code under GPLv3 to make the desired combination. To learn more about compatibility between GNU licenses, please see our FAQ."

The push and shove router is covered by the GPLv3+. This means the whole KiCad package has to be released under the terms of the GPLv3 license, if you're including the P&S-router. 

However, the "About../License" tab shows the following text:

"The complete KiCad EDA Suite is released under the GNU General Public License (GPL) version 2 or any later version"
 
(2) License of the embedded stroke font
 
This is a particular problem, because the stroke font is hard coded to the KiCad binary. The user has no way to load his own font at run-time.

The font itself is derived from the Hershey font family and the Hershey fonts are covered by a special license which includes advertising clauses and is thus not compatible with the GPLv2. The author of the font was Vladimir Uryvaev and the README.txt (helpers/tools_to_build_newstroke-font) states "Released under CC-BY licence". This license is also incompatible with both the Hershey license and the GPLv2.

One way to solve this issue could be to write an simple loader for the font, this way the font is not part of the program itself and the Hershey font license has to be distributed with the KiCad package. And maybe for the distant future it makes sense to use a different stroke font like the ISO 3098 font from Wikipedia (public domain, https://commons.wikimedia.org/wiki/File:ISO3098.svg) or Lorenzo's variant.

You can find the Hershey font license here: http://ghostscript.com/doc/current/Hershey.htm

The GPL-license itself is not ideal for a font, because if you're embedding the font in a design (schematics etc.) the whole work has to be distributed under the terms of the GPL-license.
 
(3) The KiCad library license
 
The used GNU Library General Public License is the predecessor of the GNU Lesser General Public License. See also:
http://www.gnu.org/licenses/old-licenses/lgpl-2.0.en.html ;
 
What was the motivation for selecting this license? 
 
Does this license offer any advantages over the GPL? 
 
Section 5 states:
 
"[..] However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. [..]"

Using a library to create a PCB design is quite similar to linking and creating a executable, thus any distributed design falls under section 6 - that means you need to "[..] permit modification of the work for the customer's own use and reverse engineering [..]" and accompany the work "[..] with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library". [..]"
 
Basically this is the same challenge like with any GPL-licensed font. The Free Software Foundation published 2005 the so-called "GPL font exception " (see https://en.wikipedia.org/wiki/GPL_font_exception). The gEDA developers found in my opinion a similar and better solution, they have defined a exception clause for their library - just like the GPL font exception - so you can use the library also for commercial (closed) projects (see http://wiki.geda-project.org/geda:license).
 
Thanks,
Torsten


Follow ups