David Gibson | 7d24bd0 | 2008-01-04 13:43:24 +1100 | [diff] [blame] | 1 | Licensing and contribution policy of dtc and libfdt |
| 2 | =================================================== |
| 3 | |
| 4 | This dtc package contains two pieces of software: dtc itself, and |
| 5 | libfdt which comprises the files in the libfdt/ subdirectory. These |
| 6 | two pieces of software, although closely related, are quite distinct. |
| 7 | dtc does not incoporate or rely on libfdt for its operation, nor vice |
| 8 | versa. It is important that these two pieces of software have |
| 9 | different license conditions. |
| 10 | |
| 11 | As the copyright banners in each source file attest, dtc is licensed |
| 12 | under the GNU GPL. The full text of the GPL can be found in the file |
| 13 | entitled 'GPL' which should be included in this package. dtc code, |
| 14 | therefore, may not be incorporated into works which do not have a GPL |
| 15 | compatible license. |
| 16 | |
| 17 | libfdt, however, is GPL/BSD dual-licensed. That is, it may be used |
| 18 | either under the terms of the GPL, or under the terms of the 2-clause |
| 19 | BSD license (aka the ISC license). The full terms of that license are |
| 20 | given in the copyright banners of each of the libfdt source files. |
| 21 | This is, in practice, equivalent to being BSD licensed, since the |
| 22 | terms of the BSD license are strictly more permissive than the GPL. |
| 23 | |
| 24 | I made the decision to license libfdt in this way because I want to |
| 25 | encourage widespread and correct usage of flattened device trees, |
| 26 | including by proprietary or otherwise GPL-incompatible firmware or |
| 27 | tools. Allowing libfdt to be used under the terms of the BSD license |
| 28 | makes that it easier for vendors or authors of such software to do so. |
| 29 | |
| 30 | This does mean that libfdt code could be "stolen" - say, included in a |
| 31 | proprietary fimware and extended without contributing those extensions |
| 32 | back to the libfdt mainline. While I hope that doesn't happen, I |
| 33 | believe the goal of allowing libfdt to be widely used is more |
| 34 | important than avoiding that. libfdt is quite small, and hardly |
| 35 | rocket science; so the incentive for such impolite behaviour is small, |
| 36 | and the inconvenience caused therby is not dire. |
| 37 | |
| 38 | Licenses such as the LGPL which would allow code to be used in non-GPL |
| 39 | software, but also require contributions to be returned were |
| 40 | considered. However, libfdt is designed to be used in firmwares and |
| 41 | other environments with unusual technical constraints. It's difficult |
| 42 | to anticipate all possible changes which might be needed to meld |
| 43 | libfdt into such environments and so difficult to suitably word a |
| 44 | license that puts the boundary between what is and isn't permitted in |
| 45 | the intended place. Again, I judged encouraging widespread use of |
| 46 | libfdt by keeping the license terms simple and familiar to be the more |
| 47 | important goal. |
| 48 | |
| 49 | **IMPORTANT** It's intended that all of libfdt as released remain |
| 50 | permissively licensed this way. Therefore only contributions which |
| 51 | are released under these terms can be merged into the libfdt mainline. |
| 52 | |
| 53 | |
| 54 | David Gibson <david@gibson.dropbear.id.au> |
| 55 | (principal original author of dtc and libfdt) |
| 56 | 2 November 2007 |