1139776SimpLicensing and contribution policy of dtc and libfdt
266539Sbp===================================================
351852Sbp
451852SbpThis dtc package contains two pieces of software: dtc itself, and
551852Sbplibfdt which comprises the files in the libfdt/ subdirectory.  These
651852Sbptwo pieces of software, although closely related, are quite distinct.
751852Sbpdtc does not incorporate or rely on libfdt for its operation, nor vice
851852Sbpversa.  It is important that these two pieces of software have
951852Sbpdifferent license conditions.
1051852Sbp
1151852SbpAs SPDX license tags in each source file attest, dtc is licensed
1251852Sbpunder the GNU GPL.  The full text of the GPL can be found in the file
1351852Sbpentitled 'GPL' which should be included in this package.  dtc code,
1451852Sbptherefore, may not be incorporated into works which do not have a GPL
1551852Sbpcompatible license.
1651852Sbp
1751852Sbplibfdt, however, is GPL/BSD dual-licensed.  That is, it may be used
1851852Sbpeither under the terms of the GPL, or under the terms of the 2-clause
1951852SbpBSD license (aka the ISC license).  The full terms of that license can
2051852Sbpbe found are in the file entitled 'BSD-2-Clause'. This is, in
2151852Sbppractice, equivalent to being BSD licensed, since the terms of the BSD
2251852Sbplicense are strictly more permissive than the GPL.
2351852Sbp
2451852SbpI made the decision to license libfdt in this way because I want to
2551852Sbpencourage widespread and correct usage of flattened device trees,
2651852Sbpincluding by proprietary or otherwise GPL-incompatible firmware or
2751852Sbptools.  Allowing libfdt to be used under the terms of the BSD license
2851852Sbpmakes that it easier for vendors or authors of such software to do so.
2951852Sbp
3051852SbpThis does mean that libfdt code could be "stolen" - say, included in a
3151852Sbpproprietary fimware and extended without contributing those extensions
3251852Sbpback to the libfdt mainline.  While I hope that doesn't happen, I
3351852Sbpbelieve the goal of allowing libfdt to be widely used is more
3451852Sbpimportant than avoiding that.  libfdt is quite small, and hardly
3551852Sbprocket science; so the incentive for such impolite behaviour is small,
3651852Sbpand the inconvenience caused thereby is not dire.
3751852Sbp
3851852SbpLicenses such as the LGPL which would allow code to be used in non-GPL
3951852Sbpsoftware, but also require contributions to be returned were
4051852Sbpconsidered.  However, libfdt is designed to be used in firmwares and
4151852Sbpother environments with unusual technical constraints.  It's difficult
4251852Sbpto anticipate all possible changes which might be needed to meld
4351852Sbplibfdt into such environments and so difficult to suitably word a
4460041Sphklicense that puts the boundary between what is and isn't permitted in
4551852Sbpthe intended place.  Again, I judged encouraging widespread use of
4651852Sbplibfdt by keeping the license terms simple and familiar to be the more
4751852Sbpimportant goal.
4851852Sbp
4951852Sbp**IMPORTANT** It's intended that all of libfdt as released remain
5051852Sbppermissively licensed this way.  Therefore only contributions which
5151852Sbpare released under these terms can be merged into the libfdt mainline.
5251852Sbp
5377223Sru
5477223SruDavid Gibson <david@gibson.dropbear.id.au>
5577223Sru(principal original author of dtc and libfdt)
5651852Sbp2 November 2007
5751852Sbp