|
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 |