xref: /optee_os/core/lib/libfdt/README.license (revision b908c67504cd78b0a4637a5dbb08fb894e8c32cf)
1*b908c675SJens WiklanderLicensing and contribution policy of dtc and libfdt
2*b908c675SJens Wiklander===================================================
3*b908c675SJens Wiklander
4*b908c675SJens WiklanderThis dtc package contains two pieces of software: dtc itself, and
5*b908c675SJens Wiklanderlibfdt which comprises the files in the libfdt/ subdirectory.  These
6*b908c675SJens Wiklandertwo pieces of software, although closely related, are quite distinct.
7*b908c675SJens Wiklanderdtc does not incoporate or rely on libfdt for its operation, nor vice
8*b908c675SJens Wiklanderversa.  It is important that these two pieces of software have
9*b908c675SJens Wiklanderdifferent license conditions.
10*b908c675SJens Wiklander
11*b908c675SJens WiklanderAs the copyright banners in each source file attest, dtc is licensed
12*b908c675SJens Wiklanderunder the GNU GPL.  The full text of the GPL can be found in the file
13*b908c675SJens Wiklanderentitled 'GPL' which should be included in this package.  dtc code,
14*b908c675SJens Wiklandertherefore, may not be incorporated into works which do not have a GPL
15*b908c675SJens Wiklandercompatible license.
16*b908c675SJens Wiklander
17*b908c675SJens Wiklanderlibfdt, however, is GPL/BSD dual-licensed.  That is, it may be used
18*b908c675SJens Wiklandereither under the terms of the GPL, or under the terms of the 2-clause
19*b908c675SJens WiklanderBSD license (aka the ISC license).  The full terms of that license are
20*b908c675SJens Wiklandergiven in the copyright banners of each of the libfdt source files.
21*b908c675SJens WiklanderThis is, in practice, equivalent to being BSD licensed, since the
22*b908c675SJens Wiklanderterms of the BSD license are strictly more permissive than the GPL.
23*b908c675SJens Wiklander
24*b908c675SJens WiklanderI made the decision to license libfdt in this way because I want to
25*b908c675SJens Wiklanderencourage widespread and correct usage of flattened device trees,
26*b908c675SJens Wiklanderincluding by proprietary or otherwise GPL-incompatible firmware or
27*b908c675SJens Wiklandertools.  Allowing libfdt to be used under the terms of the BSD license
28*b908c675SJens Wiklandermakes that it easier for vendors or authors of such software to do so.
29*b908c675SJens Wiklander
30*b908c675SJens WiklanderThis does mean that libfdt code could be "stolen" - say, included in a
31*b908c675SJens Wiklanderproprietary fimware and extended without contributing those extensions
32*b908c675SJens Wiklanderback to the libfdt mainline.  While I hope that doesn't happen, I
33*b908c675SJens Wiklanderbelieve the goal of allowing libfdt to be widely used is more
34*b908c675SJens Wiklanderimportant than avoiding that.  libfdt is quite small, and hardly
35*b908c675SJens Wiklanderrocket science; so the incentive for such impolite behaviour is small,
36*b908c675SJens Wiklanderand the inconvenience caused therby is not dire.
37*b908c675SJens Wiklander
38*b908c675SJens WiklanderLicenses such as the LGPL which would allow code to be used in non-GPL
39*b908c675SJens Wiklandersoftware, but also require contributions to be returned were
40*b908c675SJens Wiklanderconsidered.  However, libfdt is designed to be used in firmwares and
41*b908c675SJens Wiklanderother environments with unusual technical constraints.  It's difficult
42*b908c675SJens Wiklanderto anticipate all possible changes which might be needed to meld
43*b908c675SJens Wiklanderlibfdt into such environments and so difficult to suitably word a
44*b908c675SJens Wiklanderlicense that puts the boundary between what is and isn't permitted in
45*b908c675SJens Wiklanderthe intended place.  Again, I judged encouraging widespread use of
46*b908c675SJens Wiklanderlibfdt by keeping the license terms simple and familiar to be the more
47*b908c675SJens Wiklanderimportant goal.
48*b908c675SJens Wiklander
49*b908c675SJens Wiklander**IMPORTANT** It's intended that all of libfdt as released remain
50*b908c675SJens Wiklanderpermissively licensed this way.  Therefore only contributions which
51*b908c675SJens Wiklanderare released under these terms can be merged into the libfdt mainline.
52*b908c675SJens Wiklander
53*b908c675SJens Wiklander
54*b908c675SJens WiklanderDavid Gibson <david@gibson.dropbear.id.au>
55*b908c675SJens Wiklander(principal original author of dtc and libfdt)
56*b908c675SJens Wiklander2 November 2007
57