license: fix typos
[dpdk.git] / license / README
1 The DPDK uses the Open Source BSD-3-Clause license for the core libraries and
2 drivers. The kernel components are naturally GPL-2.0 licensed.
3
4 Including big blocks of License headers in all files blows up the
5 source code with mostly redundant information.  An additional problem
6 is that even the same licenses are referred to by a number of
7 slightly varying text blocks (full, abbreviated, different
8 indentation, line wrapping and/or white space, with obsolete address
9 information, ...) which makes validation and automatic processing a nightmare.
10
11 To make this easier, DPDK uses a single line reference to Unique License
12 Identifiers in source files as defined by the Linux Foundation's SPDX project
13 (https://spdx.org/).
14
15 Adding license information in this fashion, rather than adding full license
16 text, can be more efficient for developers; decreases errors; and improves
17 automated detection of licenses. The current set of valid, predefined SPDX
18 identifiers is set forth on the SPDX License List at https://spdx.org/licenses/.
19
20 DPDK uses first line of the file to be SPDX tag. In case of *#!* scripts, SPDX
21 tag can be placed in 2nd line of the file.
22
23 For example, to label a file as subject to the BSD-3-Clause license,
24 the following text would be used:
25
26 SPDX-License-Identifier: BSD-3-Clause
27
28 To label a file as GPL-2.0 (e.g., for code that runs in the kernel), the
29 following text would be used:
30
31 SPDX-License-Identifier: GPL-2.0
32
33 To label a file as dual-licensed with BSD-3-Clause and GPL-2.0 (e.g., for code
34 that is shared between the kernel and userspace), the following text would be
35 used:
36
37 SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
38
39 To label a file as dual-licensed with BSD-3-Clause and LGPL-2.1 (e.g., for code
40 that is shared between the kernel and userspace), the following text would be
41 used:
42
43 SPDX-License-Identifier: (BSD-3-Clause OR LGPL-2.1)
44
45 Any new file contributions in DPDK shall adhere to the above scheme.
46 It is also being recommended to replace the existing license text in the code
47 with SPDX-License-Identifiers.
48
49 Any exception to the DPDK IP policies shall be approved by DPDK Tech Board and
50 DPDK Governing Board. Steps for any exception approval:
51 1. Mention the appropriate license identifier form SPDX. If the license is not
52    listed in SPDX Licenses. It is the submitters responsibility to get it
53    first listed.
54 2. Get the required approval from the DPDK Technical Board. Technical Board may
55    advise the author to check alternate means first. If no other alternative
56    are found and the merit of the contributions are important for DPDK's
57    mission, it may decide on such exception with two-thirds vote of the members.
58 3. Technical Board then approach Governing Board for such limited approval for
59    the given contribution only.
60
61 Any approvals shall be documented in "Licenses/exceptions.txt" with record
62 dates.
63
64 DPDK project supported licenses are:
65
66 1. BSD 3-clause "New" or "Revised" License
67         SPDX-License-Identifier: BSD-3-Clause
68         URL: http://spdx.org/licenses/BSD-3-Clause#licenseText
69         DPDK License text: licenses/bsd-3-clause.txt
70 2. GNU General Public License v2.0 only
71         SPDX-License-Identifier: GPL-2.0
72         URL: http://spdx.org/licenses/GPL-2.0.html#licenseText
73         DPDK License text: licenses/gpl-2.0.txt
74 3. GNU Lesser General Public License v2.1
75         SPDX-License-Identifier: LGPL-2.1
76         URL: http://spdx.org/licenses/LGPL-2.1.html#licenseText
77         DPDK License text: licenses/lgpl-2.1.txt