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