1204431SrajLicensing and contribution policy of dtc and libfdt 2204431Sraj=================================================== 3204431Sraj 4204431SrajThis dtc package contains two pieces of software: dtc itself, and 5204431Srajlibfdt which comprises the files in the libfdt/ subdirectory. These 6204431Srajtwo pieces of software, although closely related, are quite distinct. 7204431Srajdtc does not incoporate or rely on libfdt for its operation, nor vice 8204431Srajversa. It is important that these two pieces of software have 9204431Srajdifferent license conditions. 10204431Sraj 11204431SrajAs the copyright banners in each source file attest, dtc is licensed 12204431Srajunder the GNU GPL. The full text of the GPL can be found in the file 13204431Srajentitled 'GPL' which should be included in this package. dtc code, 14204431Srajtherefore, may not be incorporated into works which do not have a GPL 15204431Srajcompatible license. 16204431Sraj 17204431Srajlibfdt, however, is GPL/BSD dual-licensed. That is, it may be used 18204431Srajeither under the terms of the GPL, or under the terms of the 2-clause 19204431SrajBSD license (aka the ISC license). The full terms of that license are 20204431Srajgiven in the copyright banners of each of the libfdt source files. 21204431SrajThis is, in practice, equivalent to being BSD licensed, since the 22204431Srajterms of the BSD license are strictly more permissive than the GPL. 23204431Sraj 24204431SrajI made the decision to license libfdt in this way because I want to 25204431Srajencourage widespread and correct usage of flattened device trees, 26204431Srajincluding by proprietary or otherwise GPL-incompatible firmware or 27204431Srajtools. Allowing libfdt to be used under the terms of the BSD license 28204431Srajmakes that it easier for vendors or authors of such software to do so. 29204431Sraj 30204431SrajThis does mean that libfdt code could be "stolen" - say, included in a 31204431Srajproprietary fimware and extended without contributing those extensions 32204431Srajback to the libfdt mainline. While I hope that doesn't happen, I 33204431Srajbelieve the goal of allowing libfdt to be widely used is more 34204431Srajimportant than avoiding that. libfdt is quite small, and hardly 35204431Srajrocket science; so the incentive for such impolite behaviour is small, 36204431Srajand the inconvenience caused therby is not dire. 37204431Sraj 38204431SrajLicenses such as the LGPL which would allow code to be used in non-GPL 39204431Srajsoftware, but also require contributions to be returned were 40204431Srajconsidered. However, libfdt is designed to be used in firmwares and 41204431Srajother environments with unusual technical constraints. It's difficult 42204431Srajto anticipate all possible changes which might be needed to meld 43204431Srajlibfdt into such environments and so difficult to suitably word a 44204431Srajlicense that puts the boundary between what is and isn't permitted in 45204431Srajthe intended place. Again, I judged encouraging widespread use of 46204431Srajlibfdt by keeping the license terms simple and familiar to be the more 47204431Srajimportant goal. 48204431Sraj 49204431Sraj**IMPORTANT** It's intended that all of libfdt as released remain 50204431Srajpermissively licensed this way. Therefore only contributions which 51204431Srajare released under these terms can be merged into the libfdt mainline. 52204431Sraj 53204431Sraj 54204431SrajDavid Gibson <david@gibson.dropbear.id.au> 55204431Sraj(principal original author of dtc and libfdt) 56204431Sraj2 November 2007 57