xref: /OK3568_Linux_fs/buildroot/docs/manual/legal-notice.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// -*- mode:doc; -*-
2*4882a593Smuzhiyun// vim: set syntax=asciidoc:
3*4882a593Smuzhiyun
4*4882a593Smuzhiyun[[legal-info]]
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun== Legal notice and licensing
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun=== Complying with open source licenses
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunAll of the end products of Buildroot (toolchain, root filesystem, kernel,
11*4882a593Smuzhiyunbootloaders) contain open source software, released under various licenses.
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunUsing open source software gives you the freedom to build rich embedded
14*4882a593Smuzhiyunsystems, choosing from a wide range of packages, but also imposes some
15*4882a593Smuzhiyunobligations that you must know and honour.
16*4882a593SmuzhiyunSome licenses require you to publish the license text in the documentation of
17*4882a593Smuzhiyunyour product. Others require you to redistribute the source code of the
18*4882a593Smuzhiyunsoftware to those that receive your product.
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunThe exact requirements of each license are documented in each package, and
21*4882a593Smuzhiyunit is your responsibility (or that of your legal office) to comply with those
22*4882a593Smuzhiyunrequirements.
23*4882a593SmuzhiyunTo make this easier for you, Buildroot can collect for you some material you
24*4882a593Smuzhiyunwill probably need. To produce this material, after you have configured
25*4882a593SmuzhiyunBuildroot with +make menuconfig+, +make xconfig+ or +make gconfig+, run:
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun--------------------
28*4882a593Smuzhiyunmake legal-info
29*4882a593Smuzhiyun--------------------
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunBuildroot will collect legally-relevant material in your output directory,
32*4882a593Smuzhiyununder the +legal-info/+ subdirectory.
33*4882a593SmuzhiyunThere you will find:
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun* A +README+ file, that summarizes the produced material and contains warnings
36*4882a593Smuzhiyun  about material that Buildroot could not produce.
37*4882a593Smuzhiyun* +buildroot.config+: this is the Buildroot configuration file that is usually
38*4882a593Smuzhiyun  produced with +make menuconfig+, and which is necessary to reproduce the
39*4882a593Smuzhiyun  build.
40*4882a593Smuzhiyun* The source code for all packages; this is saved in the +sources/+ and
41*4882a593Smuzhiyun  +host-sources/+ subdirectories for target and host packages respectively.
42*4882a593Smuzhiyun  The source code for packages that set +<PKG>_REDISTRIBUTE = NO+ will not be
43*4882a593Smuzhiyun  saved.
44*4882a593Smuzhiyun  Patches that were applied are also saved, along with a file named +series+
45*4882a593Smuzhiyun  that lists the patches in the order they were applied. Patches are under the
46*4882a593Smuzhiyun  same license as the files that they modify.
47*4882a593Smuzhiyun  Note: Buildroot applies additional patches to Libtool scripts of
48*4882a593Smuzhiyun  autotools-based packages. These patches can be found under
49*4882a593Smuzhiyun  +support/libtool+ in the Buildroot source and, due to technical
50*4882a593Smuzhiyun  limitations, are not saved with the package sources. You may need to
51*4882a593Smuzhiyun  collect them manually.
52*4882a593Smuzhiyun* A manifest file (one for host and one for target packages) listing the
53*4882a593Smuzhiyun  configured packages, their version, license and related information.
54*4882a593Smuzhiyun  Some of this information might not be defined in Buildroot; such items are
55*4882a593Smuzhiyun  marked as "unknown".
56*4882a593Smuzhiyun* The license texts of all packages, in the +licenses/+ and +host-licenses/+
57*4882a593Smuzhiyun  subdirectories for target and host packages respectively.
58*4882a593Smuzhiyun  If the license file(s) are not defined in Buildroot, the file is not produced
59*4882a593Smuzhiyun  and a warning in the +README+ indicates this.
60*4882a593Smuzhiyun
61*4882a593SmuzhiyunPlease note that the aim of the +legal-info+ feature of Buildroot is to
62*4882a593Smuzhiyunproduce all the material that is somehow relevant for legal compliance with the
63*4882a593Smuzhiyunpackage licenses. Buildroot does not try to produce the exact material that
64*4882a593Smuzhiyunyou must somehow make public. Certainly, more material is produced than is
65*4882a593Smuzhiyunneeded for a strict legal compliance. For example, it produces the source code
66*4882a593Smuzhiyunfor packages released under BSD-like licenses, that you are not required to
67*4882a593Smuzhiyunredistribute in source form.
68*4882a593Smuzhiyun
69*4882a593SmuzhiyunMoreover, due to technical limitations, Buildroot does not produce some
70*4882a593Smuzhiyunmaterial that you will or may need, such as the toolchain source code for
71*4882a593Smuzhiyunsome of the external toolchains and the Buildroot source code itself.
72*4882a593SmuzhiyunWhen you run +make legal-info+, Buildroot produces warnings in the +README+
73*4882a593Smuzhiyunfile to inform you of relevant material that could not be saved.
74*4882a593Smuzhiyun
75*4882a593SmuzhiyunFinally, keep in mind that the output of +make legal-info+ is based on
76*4882a593Smuzhiyundeclarative statements in each of the packages recipes. The Buildroot
77*4882a593Smuzhiyundevelopers try to do their best to keep those declarative statements as
78*4882a593Smuzhiyunaccurate as possible, to the best of their knowledge. However, it is very
79*4882a593Smuzhiyunwell possible that those declarative statements are not all fully accurate
80*4882a593Smuzhiyunnor exhaustive. You (or your legal department) _have_ to check the output
81*4882a593Smuzhiyunof +make legal-info+ before using it as your own compliance delivery. See
82*4882a593Smuzhiyunthe _NO WARRANTY_ clauses (clauses 11 and 12) in the +COPYING+ file at the
83*4882a593Smuzhiyunroot of the Buildroot distribution.
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun[[legal-info-buildroot]]
86*4882a593Smuzhiyun=== Complying with the Buildroot license
87*4882a593Smuzhiyun
88*4882a593SmuzhiyunBuildroot itself is an open source software, released under the
89*4882a593Smuzhiyunhttp://www.gnu.org/licenses/old-licenses/gpl-2.0.html[GNU General
90*4882a593SmuzhiyunPublic License, version 2] or (at your option) any later version, with
91*4882a593Smuzhiyunthe exception of the package patches detailed below.
92*4882a593SmuzhiyunHowever, being a build system, it is not normally part of the end product:
93*4882a593Smuzhiyunif you develop the root filesystem, kernel, bootloader or toolchain for a
94*4882a593Smuzhiyundevice, the code of Buildroot is only present on the development machine, not
95*4882a593Smuzhiyunin the device storage.
96*4882a593Smuzhiyun
97*4882a593SmuzhiyunNevertheless, the general view of the Buildroot developers is that you should
98*4882a593Smuzhiyunrelease the Buildroot source code along with the source code of other packages
99*4882a593Smuzhiyunwhen releasing a product that contains GPL-licensed software.
100*4882a593SmuzhiyunThis is because the
101*4882a593Smuzhiyunhttp://www.gnu.org/licenses/old-licenses/gpl-2.0.html[GNU GPL]
102*4882a593Smuzhiyundefines the "'complete source code'" for an executable work as "'all the
103*4882a593Smuzhiyunsource code for all modules it contains, plus any associated interface
104*4882a593Smuzhiyundefinition files, plus the scripts used to control compilation and installation
105*4882a593Smuzhiyunof the executable'".
106*4882a593SmuzhiyunBuildroot is part of the 'scripts used to control compilation and
107*4882a593Smuzhiyuninstallation of the executable', and as such it is considered part of the
108*4882a593Smuzhiyunmaterial that must be redistributed.
109*4882a593Smuzhiyun
110*4882a593SmuzhiyunKeep in mind that this is only the Buildroot developers' opinion, and you
111*4882a593Smuzhiyunshould consult your legal department or lawyer in case of any doubt.
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun==== Patches to packages
114*4882a593Smuzhiyun
115*4882a593SmuzhiyunBuildroot also bundles patch files, which are applied to the sources
116*4882a593Smuzhiyunof the various packages. Those patches are not covered by the license
117*4882a593Smuzhiyunof Buildroot. Instead, they are covered by the license of the software
118*4882a593Smuzhiyunto which the patches are applied. When said software is available
119*4882a593Smuzhiyununder multiple licenses, the Buildroot patches are only provided under
120*4882a593Smuzhiyunthe publicly accessible licenses.
121*4882a593Smuzhiyun
122*4882a593SmuzhiyunSee xref:patch-policy[] for the technical details.
123