| Licensing and contribution policy of dtc and libfdt |
| =================================================== |
| |
| This dtc package contains two pieces of software: dtc itself, and |
| libfdt which comprises the files in the libfdt/ subdirectory. These |
| two pieces of software, although closely related, are quite distinct. |
| dtc does not incorporate or rely on libfdt for its operation, nor vice |
| versa. It is important that these two pieces of software have |
| different license conditions. |
| |
| As SPDX license tags in each source file attest, dtc is licensed |
| under the GNU GPL. The full text of the GPL can be found in the file |
| entitled 'GPL' which should be included in this package. dtc code, |
| therefore, may not be incorporated into works which do not have a GPL |
| compatible license. |
| |
| libfdt, however, is GPL/BSD dual-licensed. That is, it may be used |
| either under the terms of the GPL, or under the terms of the 2-clause |
| BSD license (aka the ISC license). The full terms of that license can |
| be found are in the file entitled 'BSD-2-Clause'. This is, in |
| practice, equivalent to being BSD licensed, since the terms of the BSD |
| license are strictly more permissive than the GPL. |
| |
| I made the decision to license libfdt in this way because I want to |
| encourage widespread and correct usage of flattened device trees, |
| including by proprietary or otherwise GPL-incompatible firmware or |
| tools. Allowing libfdt to be used under the terms of the BSD license |
| makes that it easier for vendors or authors of such software to do so. |
| |
| This does mean that libfdt code could be "stolen" - say, included in a |
| proprietary fimware and extended without contributing those extensions |
| back to the libfdt mainline. While I hope that doesn't happen, I |
| believe the goal of allowing libfdt to be widely used is more |
| important than avoiding that. libfdt is quite small, and hardly |
| rocket science; so the incentive for such impolite behaviour is small, |
| and the inconvenience caused thereby is not dire. |
| |
| Licenses such as the LGPL which would allow code to be used in non-GPL |
| software, but also require contributions to be returned were |
| considered. However, libfdt is designed to be used in firmwares and |
| other environments with unusual technical constraints. It's difficult |
| to anticipate all possible changes which might be needed to meld |
| libfdt into such environments and so difficult to suitably word a |
| license that puts the boundary between what is and isn't permitted in |
| the intended place. Again, I judged encouraging widespread use of |
| libfdt by keeping the license terms simple and familiar to be the more |
| important goal. |
| |
| **IMPORTANT** It's intended that all of libfdt as released remain |
| permissively licensed this way. Therefore only contributions which |
| are released under these terms can be merged into the libfdt mainline. |
| |
| |
| David Gibson <david@gibson.dropbear.id.au> |
| (principal original author of dtc and libfdt) |
| 2 November 2007 |