]>
git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/create-release.py
3 # Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>
5 # This program and the accompanying materials
6 # are licensed and made available under the terms and conditions of the BSD License
7 # which accompanies this distribution. The full text of the license may be found at
8 # http://opensource.org/licenses/bsd-license.php
10 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
21 is_unix
= not sys
.platform
.startswith('win')
24 print "This script currently only supports unix-like systems"
27 if os
.path
.exists('OvmfPkgX64.dsc'):
30 if not os
.path
.exists(os
.path
.join('OvmfPkg', 'OvmfPkgX64.dsc')):
31 print "OvmfPkg/OvmfPkgX64.dsc doesn't exist"
34 if 'TOOLCHAIN' in os
.environ
:
35 TOOLCHAIN
= os
.environ
['TOOLCHAIN']
39 def run_and_capture_output(args
, checkExitCode
= True):
40 p
= subprocess
.Popen(args
=args
, stdout
=subprocess
.PIPE
)
41 stdout
= p
.stdout
.read()
50 stdout
= run_and_capture_output(args
=('git', 'svn', 'info'))
57 stdout
= run_and_capture_output(args
=('svn', 'info'))
61 def get_svn_info_output():
62 if os
.path
.exists(os
.path
.join('OvmfPkg', '.svn')):
68 buf
= get_svn_info_output()
69 revision_re
= re
.compile('^Revision\:\s*(\d+)$', re
.MULTILINE
)
70 mo
= revision_re
.search(buf
)
72 return int(mo
.group(1))
74 revision
= get_revision()
76 newline_re
= re
.compile(r
'(\n|\r\n|\r(?!\n))', re
.MULTILINE
)
78 return newline_re
.sub('\r\n', str)
81 distro
= run_and_capture_output(args
=('lsb_release', '-sd')).strip()
83 machine
= run_and_capture_output(args
=('uname', '-m')).strip()
85 gcc_version
= run_and_capture_output(args
=('gcc', '--version'))
86 gcc_version
= gcc_version
.split('\n')[0].split()[-1]
88 ld_version
= run_and_capture_output(args
=('ld', '--version'))
89 ld_version
= ld_version
.split('\n')[0].split()[-1]
91 iasl_version
= run_and_capture_output(args
=('iasl'), checkExitCode
=False)
92 iasl_version
= filter(lambda s
: s
.find(' version ') >= 0, iasl_version
.split('\n'))[0]
93 iasl_version
= iasl_version
.split(' version ')[1].strip()
95 sb
= StringIO
.StringIO()
96 print >> sb
, 'edk2: ', 'r%d' % revision
97 print >> sb
, 'compiler: GCC', gcc_version
98 print >> sb
, 'binutils:', ld_version
99 print >> sb
, 'iasl: ', iasl_version
100 print >> sb
, 'system: ', distro
, machine
.replace('_', '-')
101 return to_dos_text(sb
.getvalue())
103 LICENSE
= to_dos_text(
104 '''This OVMF binary release is built from source code licensed under
105 the BSD open source license. The BSD license is documented at
106 http://opensource.org/licenses/bsd-license.php, and a copy is
109 One sub-component of the OVMF project is a FAT filesystem driver. The FAT
110 filesystem driver code is also BSD licensed, but the code license contains
111 one additional term. This license can be found at
112 http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Edk2-fat-driver,
113 and a copy is shown below (following the normal BSD license).
115 === BSD license: START ===
117 Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
119 Redistribution and use in source and binary forms, with or without
120 modification, are permitted provided that the following conditions
123 * Redistributions of source code must retain the above copyright
124 notice, this list of conditions and the following disclaimer.
125 * Redistributions in binary form must reproduce the above copyright
126 notice, this list of conditions and the following disclaimer in
127 the documentation and/or other materials provided with the
129 * Neither the name of the Intel Corporation nor the names of its
130 contributors may be used to endorse or promote products derived
131 from this software without specific prior written permission.
133 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
134 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
135 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
136 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
137 COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
138 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
139 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
140 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
141 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
142 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
143 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
144 POSSIBILITY OF SUCH DAMAGE.
146 === BSD license: END ===
148 === FAT filesystem driver license: START ===
150 Copyright (c) 2004, Intel Corporation. All rights reserved.
152 Redistribution and use in source and binary forms, with or without
153 modification, are permitted provided that the following conditions
156 * Redistributions of source code must retain the above copyright
157 notice, this list of conditions and the following disclaimer.
158 * Redistributions in binary form must reproduce the above copyright
159 notice, this list of conditions and the following disclaimer in
160 the documentation and/or other materials provided with the
162 * Neither the name of Intel nor the names of its
163 contributors may be used to endorse or promote products derived
164 from this software without specific prior written permission.
166 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
167 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
168 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
169 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
170 COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
171 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
172 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
173 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
174 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
175 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
176 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
177 POSSIBILITY OF SUCH DAMAGE.
180 In addition to the forgoing, redistribution and use of the code is
181 conditioned upon the FAT 32 File System Driver and all derivative
182 works thereof being used for and designed only to read and/or write
183 to a file system that is directly managed by an Extensible Firmware
184 Interface (EFI) implementation or by an emulator of an EFI
187 === FAT filesystem driver license: END ===
197 logname
= 'build-%s.log' % arch
198 build_log
= open(logname
, 'w')
199 print 'Building OVMF for', arch
, '(%s)' % logname
, '...',
201 p
= subprocess
.Popen(args
=args
, stdout
=build_log
, stderr
=build_log
)
206 print '[error 0x%x]' % ret_code
209 def create_zip(arch
):
211 filename
= 'OVMF-%s-r%d.zip' % (arch
, revision
)
212 print 'Creating', filename
, '...',
214 if os
.path
.exists(filename
):
216 zipf
= zipfile
.ZipFile(filename
, 'w', zipfile
.ZIP_DEFLATED
)
218 zipf
.writestr('BUILD_INFO', build_info
)
219 zipf
.writestr('LICENSE', LICENSE
)
220 zipf
.write(os
.path
.join('OvmfPkg', 'README'), 'README')
221 FV_DIR
= os
.path
.join(
223 'Ovmf' + arch
.title(),
224 'RELEASE_' + TOOLCHAIN
,
227 zipf
.write(os
.path
.join(FV_DIR
, 'OVMF.fd'), 'OVMF.fd')
231 build_info
= gen_build_info()