TinyG Licensing - synthetos/TinyG GitHub Wiki
The tinyg project is a motion control application built on a set of underlying components. We want the licensing to reflect this, and to treat using the application as a whole somewhat differently than using the components as a library. The intent of the tinyg licensing scheme is summarized as:
- Ensure that the tinyg project remains open source
- Encourage contribution to the project and ensure that most changes and enhancements are returned to the community
- Make it easy to use tinyg components in free and commercial projects/products- i.e. encourage use of tinyg components as a library
- Notwithstanding the above, make the application when used as a whole retain GPLv2 copyleft and other provisions
TinyG licensing is based on GPLv2 with the BeRTOS extension to enable using component files without invoking GPL copyleft. To this end, all files in the project are licensed under GPLv2. Those files that are considered "components" carry the BeRTOS exception, that allows their use without opening source code that they come in contact with.
TinyG also includes Motate hardware abstraction components that are licensed under the same scheme.
Most of what follows is shamelessly cribbed from the BeRTOS site.
- Include tinyg components within any product, distributed under any license, including commercial licenses and/or closed-source licenses
- Modify tinyg components as you want under the following conditions:
- Attribution - You must declare in a written statement in documentation and source code that you are using tinyg components in your application and offer to provide the (possibly modified) tinyg source code
- Share-alike - If you modify tinyg components, you may distribute them only under the original license
- Contribution - If you modify tinyg components, you must contribute the modifications back to the tinyg project
If you are a company or individual doing commercial embedded products, you can:
- Download and use tinyg components as you want
- Sell products based on tinyg components without paying royalties or other fees
- Sell products based on tinyg components without opening or giving away your other application source code
If you sell or otherwise distribute code/products that use tinyg components you must:
- Provide attribution that you are using tinyg components in the documentation and source code. Text like this is sufficient:
"This product uses tinyg components (http://www.synthetos.com), Copyright 2013"
- If you modified tinyg components offer the modified versions for download from your website. Alternately, you can contribute your modifications to the tinyg project, where they may be integrated in whole or in part, and/or hosted independently under the project if not integrated.
/* * tinyg.h - tinyg main header - Application GLOBALS * Part of TinyG project * * Copyright (c) 2013 Alden S. Hart Jr. * Copyright (c) 2013 Robert Giseburt * * This file ("the software") is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2 as published by the * Free Software Foundation. You should have received a copy of the GNU General Public * License, version 2 along with the software. If not, see . * * As a special exception, you may use this file as part of a software library without * restriction. Specifically, if other files instantiate templates or use macros or * inline functions from this file, or you compile this file and link it with other * files to produce an executable, this file does not by itself cause the resulting * executable to be covered by the GNU General Public License. This exception does not * however invalidate any other reasons why the executable file might be covered by the * GNU General Public License. * * THE SOFTWARE IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY * WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT * SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */