]>
Commit | Line | Data |
---|---|---|
827a09d0 MK |
1 | # EDK II Project\r |
2 | \r | |
3 | A modern, feature-rich, cross-platform firmware development environment\r | |
4 | for the UEFI and PI specifications from www.uefi.org.\r | |
5 | \r | |
827a09d0 | 6 | The majority of the content in the EDK II open source project uses a\r |
3806e1fd MK |
7 | [BSD-2-Clause Plus Patent License](License.txt). The EDK II open source project\r |
8 | contains the following components that are covered by additional licenses:\r | |
827a09d0 MK |
9 | * [BaseTools/Source/C/BrotliCompress](BaseTools/Source/C/BrotliCompress/LICENSE)\r |
10 | * [MdeModulePkg/Library/BrotliCustomDecompressLib](MdeModulePkg/Library/BrotliCustomDecompressLib/LICENSE)\r | |
3806e1fd MK |
11 | * [BaseTools/Source/C/LzmaCompress](BaseTools/Source/C/LzmaCompress/LZMA-SDK-README.txt)\r |
12 | * [MdeModulePkg/Library/LzmaCustomDecompressLib](MdeModulePkg/Library/LzmaCustomDecompressLib/LZMA-SDK-README.txt)\r | |
13 | * [IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/Sdk](IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LZMA-SDK-README.txt)\r | |
14 | * [BaseTools/Source/C/VfrCompile/Pccts](BaseTools/Source/C/VfrCompile/Pccts/RIGHTS)\r | |
3806e1fd | 15 | * [MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma](MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/README)\r |
827a09d0 | 16 | * [OvmfPkg](OvmfPkg/License.txt)\r |
b8993a34 MK |
17 | * [CryptoPkg/Library/OpensslLib/openssl](https://github.com/openssl/openssl/blob/50eaac9f3337667259de725451f201e784599687/LICENSE)\r |
18 | * [ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3](https://github.com/ucb-bar/berkeley-softfloat-3/blob/b64af41c3276f97f0e181920400ee056b9c88037/COPYING.txt)\r | |
827a09d0 MK |
19 | \r |
20 | The EDK II Project is composed of packages. The maintainers for each package\r | |
21 | are listed in [Maintainers.txt](Maintainers.txt).\r | |
22 | \r | |
23 | # Resources\r | |
24 | * [TianoCore](http://www.tianocore.org)\r | |
25 | * [EDK II](https://github.com/tianocore/tianocore.github.io/wiki/EDK-II)\r | |
26 | * [Getting Started with EDK II](https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II)\r | |
27 | * [Mailing Lists](https://github.com/tianocore/tianocore.github.io/wiki/Mailing-Lists)\r | |
28 | * [TianoCore Bugzilla](https://bugzilla.tianocore.org)\r | |
29 | * [How To Contribute](https://github.com/tianocore/tianocore.github.io/wiki/How-To-Contribute)\r | |
6f42f9a5 | 30 | * [Release Planning](https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Release-Planning)\r |
3806e1fd MK |
31 | \r |
32 | # Code Contributions\r | |
33 | To make a contribution to a TianoCore project, follow these steps.\r | |
34 | 1. Create a change description in the format specified below to\r | |
35 | use in the source control commit log.\r | |
36 | 2. Your commit message must include your `Signed-off-by` signature\r | |
37 | 3. Submit your code to the TianoCore project using the process\r | |
38 | that the project documents on its web page. If the process is\r | |
39 | not documented, then submit the code on development email list\r | |
40 | for the project.\r | |
41 | 4. It is preferred that contributions are submitted using the same\r | |
42 | copyright license as the base project. When that is not possible,\r | |
43 | then contributions using the following licenses can be accepted:\r | |
44 | * BSD (2-clause): http://opensource.org/licenses/BSD-2-Clause\r | |
45 | * BSD (3-clause): http://opensource.org/licenses/BSD-3-Clause\r | |
46 | * MIT: http://opensource.org/licenses/MIT\r | |
47 | * Python-2.0: http://opensource.org/licenses/Python-2.0\r | |
48 | * Zlib: http://opensource.org/licenses/Zlib\r | |
49 | \r | |
50 | For documentation:\r | |
51 | * FreeBSD Documentation License\r | |
52 | https://www.freebsd.org/copyright/freebsd-doc-license.html\r | |
53 | \r | |
54 | Contributions of code put into the public domain can also be\r | |
55 | accepted.\r | |
56 | \r | |
57 | Contributions using other licenses might be accepted, but further\r | |
58 | review will be required.\r | |
59 | \r | |
60 | # Developer Certificate of Origin\r | |
61 | \r | |
62 | Your change description should use the standard format for a\r | |
63 | commit message, and must include your `Signed-off-by` signature.\r | |
64 | \r | |
65 | In order to keep track of who did what, all patches contributed must\r | |
66 | include a statement that to the best of the contributor's knowledge\r | |
67 | they have the right to contribute it under the specified license.\r | |
68 | \r | |
69 | The test for this is as specified in the [Developer's Certificate of\r | |
70 | Origin (DCO) 1.1](https://developercertificate.org/). The contributor\r | |
71 | certifies compliance by adding a line saying\r | |
72 | \r | |
73 | Signed-off-by: Developer Name <developer@example.org>\r | |
74 | \r | |
75 | where `Developer Name` is the contributor's real name, and the email\r | |
76 | address is one the developer is reachable through at the time of\r | |
77 | contributing.\r | |
78 | \r | |
79 | ```\r | |
80 | Developer's Certificate of Origin 1.1\r | |
81 | \r | |
82 | By making a contribution to this project, I certify that:\r | |
83 | \r | |
84 | (a) The contribution was created in whole or in part by me and I\r | |
85 | have the right to submit it under the open source license\r | |
86 | indicated in the file; or\r | |
87 | \r | |
88 | (b) The contribution is based upon previous work that, to the best\r | |
89 | of my knowledge, is covered under an appropriate open source\r | |
90 | license and I have the right under that license to submit that\r | |
91 | work with modifications, whether created in whole or in part\r | |
92 | by me, under the same open source license (unless I am\r | |
93 | permitted to submit under a different license), as indicated\r | |
94 | in the file; or\r | |
95 | \r | |
96 | (c) The contribution was provided directly to me by some other\r | |
97 | person who certified (a), (b) or (c) and I have not modified\r | |
98 | it.\r | |
99 | \r | |
100 | (d) I understand and agree that this project and the contribution\r | |
101 | are public and that a record of the contribution (including all\r | |
102 | personal information I submit with it, including my sign-off) is\r | |
103 | maintained indefinitely and may be redistributed consistent with\r | |
104 | this project or the open source license(s) involved.\r | |
105 | ```\r | |
106 | \r | |
107 | # Sample Change Description / Commit Message\r | |
108 | \r | |
109 | ```\r | |
110 | From: Contributor Name <contributor@example.com>\r | |
111 | Subject: [Repository/Branch PATCH] Pkg-Module: Brief-single-line-summary\r | |
112 | \r | |
113 | Full-commit-message\r | |
114 | \r | |
115 | Signed-off-by: Contributor Name <contributor@example.com>\r | |
116 | ```\r | |
117 | \r | |
118 | ## Notes for sample patch email\r | |
119 | \r | |
120 | * The first line of commit message is taken from the email's subject\r | |
121 | line following `[Repository/Branch PATCH]`. The remaining portion of the\r | |
122 | commit message is the email's content.\r | |
123 | * `git format-patch` is one way to create this format\r | |
124 | \r | |
125 | ## Definitions for sample patch email\r | |
126 | \r | |
127 | * `Repository` is the identifier of the repository the patch applies.\r | |
128 | This identifier should only be provided for repositories other than\r | |
129 | `edk2`. For example `edk2-BuildSpecification` or `staging`.\r | |
130 | * `Branch` is the identifier of the branch the patch applies. This\r | |
131 | identifier should only be provided for branches other than `edk2/master`.\r | |
132 | For example `edk2/UDK2015`, `edk2-BuildSpecification/release/1.27`, or\r | |
133 | `staging/edk2-test`.\r | |
134 | * `Module` is a short identifier for the affected code or documentation. For\r | |
135 | example `MdePkg`, `MdeModulePkg/UsbBusDxe`, `Introduction`, or\r | |
136 | `EDK II INF File Format`.\r | |
137 | * `Brief-single-line-summary` is a short summary of the change.\r | |
138 | * The entire first line should be less than ~70 characters.\r | |
139 | * `Full-commit-message` a verbose multiple line comment describing\r | |
140 | the change. Each line should be less than ~70 characters.\r | |
141 | * `Signed-off-by` is the contributor's signature identifying them\r | |
142 | by their real/legal name and their email address.\r | |
2556350d JW |
143 | \r |
144 | # Submodules\r | |
145 | \r | |
146 | Submodule in EDK II is allowed but submodule chain should be avoided\r | |
147 | as possible as we can. Currently EDK II contains two submodules\r | |
148 | \r | |
149 | - CryptoPkg/Library/OpensslLib/openssl\r | |
150 | - ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3\r | |
151 | \r | |
152 | The latter one is actually required by previous one. It's inevitable\r | |
153 | in openssl-1.1.1 (since stable201905) for floating point parameter\r | |
154 | conversion, but should be dropped once there's no such need in future\r | |
155 | release of openssl.\r | |
156 | \r | |
157 | To get a full, buildable EDK II repository, use following steps of git\r | |
158 | command\r | |
159 | \r | |
160 | ```\r | |
161 | $ git clone https://github.com/tianocore/edk2.git\r | |
162 | $ cd edk2\r | |
163 | $ git submodule update --init\r | |
164 | $ cd ..\r | |
165 | ```\r | |
166 | \r | |
167 | If there's update for submodules, use following git commands to get the\r | |
168 | latest submodules code.\r | |
169 | \r | |
170 | ```\r | |
171 | $ cd edk2\r | |
172 | $ git pull\r | |
173 | $ git submodule update\r | |
174 | ```\r | |
175 | \r | |
176 | Note: When cloning submodule repos, '--recursive' option is not\r | |
177 | recommended. EDK II itself will not use any code/feature from\r | |
178 | submodules in above submodules. So using '--recursive' adds a\r | |
179 | dependency on being able to reach servers we do not actually want\r | |
180 | any code from, as well as needlessly downloading code we will not\r | |
181 | use.\r |