]>
git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/create-release.py
3 # Copyright (c) 2010 - 2011, 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.
14 release_type
= 'alpha'
23 is_unix
= not sys
.platform
.startswith('win')
26 print "This script currently only supports unix-like systems"
29 if os
.path
.exists('OvmfPkgX64.dsc'):
32 if not os
.path
.exists(os
.path
.join('OvmfPkg', 'OvmfPkgX64.dsc')):
33 print "OvmfPkg/OvmfPkgX64.dsc doesn't exist"
36 if 'TOOLCHAIN' in os
.environ
:
37 TOOLCHAIN
= os
.environ
['TOOLCHAIN']
41 def run_and_capture_output(args
, checkExitCode
= True):
42 p
= subprocess
.Popen(args
=args
, stdout
=subprocess
.PIPE
)
43 stdout
= p
.stdout
.read()
52 stdout
= run_and_capture_output(args
=('git', 'svn', 'info'))
59 stdout
= run_and_capture_output(args
=('svn', 'info'))
63 def get_svn_info_output():
64 if os
.path
.exists(os
.path
.join('OvmfPkg', '.svn')):
70 buf
= get_svn_info_output()
71 revision_re
= re
.compile('^Revision\:\s*(\d+)$', re
.MULTILINE
)
72 mo
= revision_re
.search(buf
)
74 return int(mo
.group(1))
76 revision
= get_revision()
78 newline_re
= re
.compile(r
'(\n|\r\n|\r(?!\n))', re
.MULTILINE
)
80 return newline_re
.sub('\r\n', str)
83 distro
= run_and_capture_output(args
=('lsb_release', '-sd')).strip()
85 machine
= run_and_capture_output(args
=('uname', '-m')).strip()
87 gcc_version
= run_and_capture_output(args
=('gcc', '--version'))
88 gcc_version
= gcc_version
.split('\n')[0].split()[-1]
90 ld_version
= run_and_capture_output(args
=('ld', '--version'))
91 ld_version
= ld_version
.split('\n')[0].split()[-1]
93 iasl_version
= run_and_capture_output(args
=('iasl'), checkExitCode
=False)
94 iasl_version
= filter(lambda s
: s
.find(' version ') >= 0, iasl_version
.split('\n'))[0]
95 iasl_version
= iasl_version
.split(' version ')[1].strip()
97 sb
= StringIO
.StringIO()
98 print >> sb
, 'edk2: ', 'r%d' % revision
99 print >> sb
, 'compiler: GCC', gcc_version
100 print >> sb
, 'binutils:', ld_version
101 print >> sb
, 'iasl: ', iasl_version
102 print >> sb
, 'system: ', distro
, machine
.replace('_', '-')
103 return to_dos_text(sb
.getvalue())
105 LICENSE
= to_dos_text(
106 '''This OVMF binary release is built from source code licensed under
107 the BSD open source license. The BSD license is documented at
108 http://opensource.org/licenses/bsd-license.php, and a copy is
111 One sub-component of the OVMF project is a FAT filesystem driver. The FAT
112 filesystem driver code is also BSD licensed, but the code license contains
113 one additional term. This license can be found at
114 http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Edk2-fat-driver,
115 and a copy is shown below (following the normal BSD license).
117 === BSD license: START ===
119 Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
121 Redistribution and use in source and binary forms, with or without
122 modification, are permitted provided that the following conditions
125 * Redistributions of source code must retain the above copyright
126 notice, this list of conditions and the following disclaimer.
127 * Redistributions in binary form must reproduce the above copyright
128 notice, this list of conditions and the following disclaimer in
129 the documentation and/or other materials provided with the
131 * Neither the name of the Intel Corporation nor the names of its
132 contributors may be used to endorse or promote products derived
133 from this software without specific prior written permission.
135 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
136 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
137 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
138 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
139 COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
140 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
141 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
142 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
143 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
144 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
145 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
146 POSSIBILITY OF SUCH DAMAGE.
148 === BSD license: END ===
150 === FAT filesystem driver license: START ===
152 Copyright (c) 2004, Intel Corporation. All rights reserved.
154 Redistribution and use in source and binary forms, with or without
155 modification, are permitted provided that the following conditions
158 * Redistributions of source code must retain the above copyright
159 notice, this list of conditions and the following disclaimer.
160 * Redistributions in binary form must reproduce the above copyright
161 notice, this list of conditions and the following disclaimer in
162 the documentation and/or other materials provided with the
164 * Neither the name of Intel nor the names of its
165 contributors may be used to endorse or promote products derived
166 from this software without specific prior written permission.
168 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
169 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
170 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
171 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
172 COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
173 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
174 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
175 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
176 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
177 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
178 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
179 POSSIBILITY OF SUCH DAMAGE.
182 In addition to the forgoing, redistribution and use of the code is
183 conditioned upon the FAT 32 File System Driver and all derivative
184 works thereof being used for and designed only to read and/or write
185 to a file system that is directly managed by an Extensible Firmware
186 Interface (EFI) implementation or by an emulator of an EFI
189 === FAT filesystem driver license: END ===
199 logname
= 'build-%s.log' % arch
200 build_log
= open(logname
, 'w')
201 print 'Building OVMF for', arch
, '(%s)' % logname
, '...',
203 p
= subprocess
.Popen(args
=args
, stdout
=build_log
, stderr
=build_log
)
208 print '[error 0x%x]' % ret_code
211 def create_zip(arch
):
213 filename
= 'OVMF-%s-r%d-%s.zip' % (arch
, revision
, release_type
)
214 print 'Creating', filename
, '...',
216 if os
.path
.exists(filename
):
218 zipf
= zipfile
.ZipFile(filename
, 'w', zipfile
.ZIP_DEFLATED
)
220 zipf
.writestr('BUILD_INFO', build_info
)
221 zipf
.writestr('LICENSE', LICENSE
)
222 zipf
.write(os
.path
.join('OvmfPkg', 'README'), 'README')
223 FV_DIR
= os
.path
.join(
225 'Ovmf' + arch
.title(),
226 'RELEASE_' + TOOLCHAIN
,
229 zipf
.write(os
.path
.join(FV_DIR
, 'OVMF.fd'), 'OVMF.fd')
230 zipf
.write(os
.path
.join(FV_DIR
, 'CirrusLogic5446.rom'), 'CirrusLogic5446.rom')
234 build_info
= gen_build_info()