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