VirtualBox

source: vbox/trunk/src/VBox/Installer/win/Scripts/PackDriversForSubmission.cmd@ 96920

Last change on this file since 96920 was 96920, checked in by vboxsync, 3 years ago

ExtPack: Windows: Comment-out remainig bits of VBoxEhciR0 from installer repacking script and .inf, bugref:10296.

  • Property svn:eol-style set to CRLF
  • Property svn:keywords set to Author Date Id Revision
File size: 15.4 KB
Line 
1@echo off
2rem $Id: PackDriversForSubmission.cmd 96920 2022-09-28 18:24:30Z vboxsync $
3rem rem @file
4rem Windows NT batch script for preparing for signing submission.
5rem
6
7rem
8rem Copyright (C) 2018-2022 Oracle and/or its affiliates.
9rem
10rem This file is part of VirtualBox base platform packages, as
11rem available from https://www.virtualbox.org.
12rem
13rem This program is free software; you can redistribute it and/or
14rem modify it under the terms of the GNU General Public License
15rem as published by the Free Software Foundation, in version 3 of the
16rem License.
17rem
18rem This program is distributed in the hope that it will be useful, but
19rem WITHOUT ANY WARRANTY; without even the implied warranty of
20rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21rem General Public License for more details.
22rem
23rem You should have received a copy of the GNU General Public License
24rem along with this program; if not, see <https://www.gnu.org/licenses>.
25rem
26rem SPDX-License-Identifier: GPL-3.0-only
27rem
28
29
30setlocal ENABLEEXTENSIONS
31setlocal
32
33rem
34rem Parse arguments.
35rem
36set _MY_OPT_BINDIR=..\bin
37set _MY_OPT_PDBDIR=
38set _MY_OPT_GADIR=
39set _MY_OPT_WITH_MAIN=1
40set _MY_OPT_WITH_PDB=1
41set _MY_OPT_EXTPACK=
42set _MY_OPT_WITH_EXTPACK=1
43set _MY_OPT_WITH_GA=0
44set _MY_OPT_OUTPUT=
45set _MY_OPT_DDF_FILE=
46set _MY_OPT_ARCH=amd64
47
48:argument_loop
49if ".%1" == "." goto no_more_arguments
50
51if ".%1" == ".-h" goto opt_h
52if ".%1" == ".-?" goto opt_h
53if ".%1" == "./h" goto opt_h
54if ".%1" == "./H" goto opt_h
55if ".%1" == "./?" goto opt_h
56if ".%1" == ".-help" goto opt_h
57if ".%1" == ".--help" goto opt_h
58
59if ".%1" == ".-a" goto opt_a
60if ".%1" == ".--arch" goto opt_a
61if ".%1" == ".-b" goto opt_b
62if ".%1" == ".--bindir" goto opt_b
63if ".%1" == ".-d" goto opt_d
64if ".%1" == ".--ddf" goto opt_d
65if ".%1" == ".-e" goto opt_e
66if ".%1" == ".--extpack" goto opt_e
67if ".%1" == ".--no-main" goto opt_m
68if ".%1" == ".-n" goto opt_n
69if ".%1" == ".--no-pdb" goto opt_n
70if ".%1" == ".-o" goto opt_o
71if ".%1" == ".--output" goto opt_o
72if ".%1" == ".-p" goto opt_p
73if ".%1" == ".--pdb" goto opt_p
74if ".%1" == ".-x" goto opt_x
75if ".%1" == ".--no-extpack" goto opt_x
76if ".%1" == ".-g" goto opt_g
77if ".%1" == ".--ga" goto opt_g
78if ".%1" == ".--additions" goto opt_g
79echo syntax error: Unknown option: %1
80echo Try --help to list valid options.
81goto end_failed
82
83:argument_loop_next_with_value
84shift
85shift
86goto argument_loop
87
88:opt_a
89if ".%~2" == "." goto syntax_error_missing_value
90if not "%2" == "x86" if not "%2" == "amd64" goto syntax_error_unknown_arch
91set _MY_OPT_ARCH=%~2
92goto argument_loop_next_with_value
93
94:opt_b
95if ".%~2" == "." goto syntax_error_missing_value
96set _MY_OPT_BINDIR=%~2
97goto argument_loop_next_with_value
98
99:opt_d
100if ".%~2" == "." goto syntax_error_missing_value
101set _MY_OPT_DDF_FILE=%~2
102goto argument_loop_next_with_value
103
104:opt_e
105if ".%~2" == "." goto syntax_error_missing_value
106set _MY_OPT_EXTPACK=%~2
107goto argument_loop_next_with_value
108
109:opt_h
110echo This script creates a .cab file containing all drivers needing blessing from
111echo Microsoft to run on recent Windows 10 installations.
112echo .
113echo Usage: PackDriversForSubmission.cmd [-b bindir] [-p pdbdir] [--no-main] [-n/--no-pdb] [-e expack]
114echo [-x/--no-extpack] [-g/--ga/--additions] [-o output.cab] [-p output.ddf] [-a x86/amd64]
115echo .
116echo Warning! This script should normally be invoked from the repack directory w/o any parameters.
117goto end_failed
118
119:opt_m
120set _MY_OPT_WITH_MAIN=0
121shift
122goto argument_loop
123
124:opt_n
125set _MY_OPT_WITH_PDB=0
126shift
127goto argument_loop
128
129:opt_p
130if ".%~2" == "." goto syntax_error_missing_value
131set _MY_OPT_PDBDIR=%~2
132goto argument_loop_next_with_value
133
134:opt_o
135if ".%~2" == "." goto syntax_error_missing_value
136set _MY_OPT_OUTPUT=%~2
137goto argument_loop_next_with_value
138
139:opt_x
140set _MY_OPT_WITH_EXTPACK=0
141shift
142goto argument_loop
143
144:opt_g
145set _MY_OPT_WITH_GA=1
146shift
147goto argument_loop
148
149
150:syntax_error_missing_value
151echo syntax error: missing or empty option value after %1
152goto end_failed
153
154:syntax_error_unknown_arch
155echo syntax error: Unknown architecture: %2
156goto end_failed
157
158:error_bindir_does_not_exist
159echo syntax error: Specified BIN directory does not exist: "%_MY_OPT_BINDIR%"
160goto end_failed
161
162:error_pdbdir_does_not_exist
163echo syntax error: Specified PDB directory does not exist: "%_MY_OPT_PDBDIR%"
164goto end_failed
165
166:error_extpack_does_not_exist
167echo syntax error: Specified extension pack does not exist: "%_MY_OPT_EXTPACK%"
168goto end_failed
169
170:error_additions_does_not_exist
171echo syntax error: Specified guest additions does not exist: "%_MY_OPT_GADIR%"
172goto end_failed
173
174
175:error_output_exists
176echo error: The output file already exist: "%_MY_OPT_OUTPUT%"
177goto end_failed
178
179:error_ddf_exists
180echo error: The DDF file already exist: "%_MY_OPT_DDF_FILE%"
181goto end_failed
182
183:no_more_arguments
184rem validate specified options
185if not exist "%_MY_OPT_BINDIR%" goto error_bindir_does_not_exist
186
187if "%_MY_OPT_WITH_PDB%" == "0" goto no_pdbdir_validation
188if ".%_MY_OPT_PDBDIR%" == "." set _MY_OPT_PDBDIR=%_MY_OPT_BINDIR%\..\stage\debug\bin
189if not exist "%_MY_OPT_PDBDIR%" goto error_pdbdir_does_not_exist
190:no_pdbdir_validation
191
192if "%_MY_OPT_WITH_EXTPACK%" == "0" goto no_extpack_validation
193if ".%_MY_OPT_EXTPACK%" == "." set _MY_OPT_EXTPACK=%_MY_OPT_BINDIR%\Oracle_VM_VirtualBox_Extension_Pack.vbox-extpack
194if not exist "%_MY_OPT_EXTPACK%" goto error_extpack_does_not_exist
195:no_extpack_validation
196
197if "%_MY_OPT_WITH_GA%" == "0" goto no_additions_validation
198if ".%_MY_OPT_GADIR%" == "." set _MY_OPT_GADIR=%_MY_OPT_BINDIR%\additions
199if not exist "%_MY_OPT_GADIR%" goto error_additions_does_not_exist
200:no_additions_validation
201
202if ".%_MY_OPT_OUTPUT%" == "." set _MY_OPT_OUTPUT=VBoxDrivers-@VBOX_VERSION_STRING@r@VBOX_SVN_REV@-%_MY_OPT_ARCH%.cab
203if exist "%_MY_OPT_OUTPUT%" goto error_output_exists
204
205if ".%_MY_OPT_DDF_FILE%" == "." set _MY_OPT_DDF_FILE=%_MY_OPT_OUTPUT%.ddf
206if exist "%_MY_OPT_DDF_FILE%" goto error_ddf_exists
207
208
209rem
210rem Unpack the extension pack.
211rem We unpack it into the bin directory in the usual location.
212rem
213rem Note! Modify the path a little to ensure windows utilities are used before
214rem cygwin ones, and that we can use stuff from bin\tools if we like.
215rem
216set PATH=%SystemRoot%\System32;%PATH%;%_MY_OPT_BINDIR%
217if "%_MY_OPT_WITH_EXTPACK%" == "0" goto no_extpack_unpack
218set _MY_EXTPACK_DIR=%_MY_OPT_BINDIR%\ExtensionPacks\Oracle_VM_VirtualBox_Extension_Pack
219if not exist "%_MY_OPT_BINDIR%\ExtensionPacks" ( mkdir "%_MY_OPT_BINDIR%\ExtensionPacks" || goto end_failed )
220if not exist "%_MY_EXTPACK_DIR%" ( mkdir "%_MY_EXTPACK_DIR%" || goto end_failed )
221"%_MY_OPT_BINDIR%\tools\RTTar.exe" -xzf "%_MY_OPT_EXTPACK%" -C "%_MY_EXTPACK_DIR%" || goto end_failed
222:no_extpack_unpack
223
224rem
225rem Create the DDF file for makecab.
226rem
227echo .OPTION EXPLICIT> "%_MY_OPT_DDF_FILE%" || goto end_failed
228echo .Set CabinetFileCountThreshold=0 >> "%_MY_OPT_DDF_FILE%"
229echo .Set FolderFileCountThreshold=0 >> "%_MY_OPT_DDF_FILE%"
230echo .Set FolderSizeThreshold=0 >> "%_MY_OPT_DDF_FILE%"
231echo .Set MaxCabinetSize=0 >> "%_MY_OPT_DDF_FILE%"
232echo .Set MaxDiskFileCount=0 >> "%_MY_OPT_DDF_FILE%"
233echo .Set MaxDiskSize=0 >> "%_MY_OPT_DDF_FILE%"
234echo .Set Cabinet=on>> "%_MY_OPT_DDF_FILE%"
235echo .Set CompressionType=MSZIP>> "%_MY_OPT_DDF_FILE%"
236echo .Set Compress=on>> "%_MY_OPT_DDF_FILE%"
237echo .Set DiskDirectoryTemplate= >> "%_MY_OPT_DDF_FILE%"
238echo .Set CabinetNameTemplate=%_MY_OPT_OUTPUT%>> "%_MY_OPT_DDF_FILE%"
239echo .Set InfFileName=%_MY_OPT_OUTPUT%.inf>> "%_MY_OPT_DDF_FILE%"
240echo .Set RptFileName=%_MY_OPT_OUTPUT%.rpt>> "%_MY_OPT_DDF_FILE%"
241
242if %_MY_OPT_WITH_MAIN% == 0 goto skip_main_package
243echo .Set DestinationDir=VBoxSup>> "%_MY_OPT_DDF_FILE%"
244echo %_MY_OPT_BINDIR%\VBoxSup.inf VBoxSup.inf>> "%_MY_OPT_DDF_FILE%"
245echo %_MY_OPT_BINDIR%\VBoxSup.sys VBoxSup.sys>> "%_MY_OPT_DDF_FILE%"
246if "%_MY_OPT_WITH_PDB%" == "1" echo %_MY_OPT_PDBDIR%\VBoxSup.pdb VBoxSup.pdb>> "%_MY_OPT_DDF_FILE%"
247
248echo .Set DestinationDir=VBoxNetAdp6>> "%_MY_OPT_DDF_FILE%"
249echo %_MY_OPT_BINDIR%\VBoxNetAdp6.inf VBoxNetAdp6.inf>> "%_MY_OPT_DDF_FILE%"
250echo %_MY_OPT_BINDIR%\VBoxNetAdp6.sys VBoxNetAdp6.sys>> "%_MY_OPT_DDF_FILE%"
251if "%_MY_OPT_WITH_PDB%" == "1" echo %_MY_OPT_PDBDIR%\VBoxNetAdp6.pdb VBoxNetAdp6.pdb>> "%_MY_OPT_DDF_FILE%"
252
253echo .Set DestinationDir=VBoxNetLwf>> "%_MY_OPT_DDF_FILE%"
254echo %_MY_OPT_BINDIR%\VBoxNetLwf.inf VBoxNetLwf.inf>> "%_MY_OPT_DDF_FILE%"
255echo %_MY_OPT_BINDIR%\VBoxNetLwf.sys VBoxNetLwf.sys>> "%_MY_OPT_DDF_FILE%"
256if "%_MY_OPT_WITH_PDB%" == "1" echo %_MY_OPT_PDBDIR%\VBoxNetLwf.pdb VBoxNetLwf.pdb>> "%_MY_OPT_DDF_FILE%"
257
258echo .Set DestinationDir=VBoxUSB>> "%_MY_OPT_DDF_FILE%"
259echo %_MY_OPT_BINDIR%\VBoxUSB.inf VBoxUSB.inf>> "%_MY_OPT_DDF_FILE%"
260echo %_MY_OPT_BINDIR%\VBoxUSB.sys VBoxUSB.sys>> "%_MY_OPT_DDF_FILE%"
261if "%_MY_OPT_WITH_PDB%" == "1" echo %_MY_OPT_PDBDIR%\VBoxUSB.pdb VBoxUSB.pdb>> "%_MY_OPT_DDF_FILE%"
262
263echo .Set DestinationDir=VBoxUSBMon>> "%_MY_OPT_DDF_FILE%"
264echo %_MY_OPT_BINDIR%\VBoxUSBMon.inf VBoxUSBMon.inf>> "%_MY_OPT_DDF_FILE%"
265echo %_MY_OPT_BINDIR%\VBoxUSBMon.sys VBoxUSBMon.sys>> "%_MY_OPT_DDF_FILE%"
266if "%_MY_OPT_WITH_PDB%" == "1" echo %_MY_OPT_PDBDIR%\VBoxUSBMon.pdb VBoxUSBMon.pdb>> "%_MY_OPT_DDF_FILE%"
267
268echo .Set DestinationDir=VMMR0>> "%_MY_OPT_DDF_FILE%"
269echo .\VMMR0.inf VMMR0.inf>> "%_MY_OPT_DDF_FILE%"
270echo %_MY_OPT_BINDIR%\VMMR0.r0 VMMR0.r0>> "%_MY_OPT_DDF_FILE%"
271if "%_MY_OPT_WITH_PDB%" == "1" echo %_MY_OPT_PDBDIR%\VMMR0.pdb VMMR0.pdb>> "%_MY_OPT_DDF_FILE%"
272echo %_MY_OPT_BINDIR%\VBoxDDR0.r0 VBoxDDR0.r0>> "%_MY_OPT_DDF_FILE%"
273:skip_main_package
274
275if "%_MY_OPT_WITH_PDB%" == "1" echo %_MY_OPT_PDBDIR%\VBoxDDR0.pdb VBoxDDR0.pdb>> "%_MY_OPT_DDF_FILE%"
276
277if "%_MY_OPT_WITH_EXTPACK%" == "0" goto no_extpack_ddf
278echo .Set DestinationDir=VBoxExtPackPuel>> "%_MY_OPT_DDF_FILE%"
279echo .\VBoxExtPackPuel.inf VBoxExtPackPuel.inf>> "%_MY_OPT_DDF_FILE%"
280rem echo %_MY_EXTPACK_DIR%\win.%_MY_OPT_ARCH%\VBoxEhciR0.r0 VBoxEhciR0.r0>> "%_MY_OPT_DDF_FILE%"
281echo %_MY_EXTPACK_DIR%\win.%_MY_OPT_ARCH%\VBoxNvmeR0.r0 VBoxNvmeR0.r0>> "%_MY_OPT_DDF_FILE%"
282rem echo %_MY_EXTPACK_DIR%\win.%_MY_OPT_ARCH%\VBoxPciRawR0.r0 VBoxPciRawR0.r0>> "%_MY_OPT_DDF_FILE%"
283:no_extpack_ddf
284
285if "%_MY_OPT_WITH_GA%" == "0" goto no_additions_ddf
286echo .Set DestinationDir=VBoxGuestAdditions>> "%_MY_OPT_DDF_FILE%"
287echo %_MY_OPT_GADIR%\VBoxGuest.inf>> "%_MY_OPT_DDF_FILE%"
288echo %_MY_OPT_GADIR%\VBoxGuest.sys>> "%_MY_OPT_DDF_FILE%"
289echo %_MY_OPT_GADIR%\VBoxTray.exe>> "%_MY_OPT_DDF_FILE%"
290echo %_MY_OPT_GADIR%\VBoxControl.exe>> "%_MY_OPT_DDF_FILE%"
291echo %_MY_OPT_GADIR%\VBoxMouse.inf>> "%_MY_OPT_DDF_FILE%"
292echo %_MY_OPT_GADIR%\VBoxMouse.sys>> "%_MY_OPT_DDF_FILE%"
293rem VBoxVideo files are excluded from attestation signing.
294rem echo %_MY_OPT_GADIR%\VBoxVideo.inf>> "%_MY_OPT_DDF_FILE%"
295rem echo %_MY_OPT_GADIR%\VBoxVideo.sys>> "%_MY_OPT_DDF_FILE%"
296echo %_MY_OPT_GADIR%\VBoxWddm.inf>> "%_MY_OPT_DDF_FILE%"
297echo %_MY_OPT_GADIR%\VBoxWddm.sys>> "%_MY_OPT_DDF_FILE%"
298echo %_MY_OPT_GADIR%\VBoxDX.dll>> "%_MY_OPT_DDF_FILE%"
299echo %_MY_OPT_GADIR%\VBoxDisp.dll>> "%_MY_OPT_DDF_FILE%"
300echo %_MY_OPT_GADIR%\VBoxDispD3D.dll>> "%_MY_OPT_DDF_FILE%"
301echo %_MY_OPT_GADIR%\VBoxNine.dll>> "%_MY_OPT_DDF_FILE%"
302echo %_MY_OPT_GADIR%\VBoxSVGA.dll>> "%_MY_OPT_DDF_FILE%"
303echo %_MY_OPT_GADIR%\VBoxGL.dll>> "%_MY_OPT_DDF_FILE%"
304echo %_MY_OPT_GADIR%\VBoxMRXNP.dll>> "%_MY_OPT_DDF_FILE%"
305echo %_MY_OPT_GADIR%\VBoxSF.sys>> "%_MY_OPT_DDF_FILE%"
306if ".%_MY_OPT_ARCH%" == ".x86" goto skip_amd64_files
307echo %_MY_OPT_GADIR%\VBoxDX-x86.dll>> "%_MY_OPT_DDF_FILE%"
308echo %_MY_OPT_GADIR%\VBoxDispD3D-x86.dll>> "%_MY_OPT_DDF_FILE%"
309echo %_MY_OPT_GADIR%\VBoxNine-x86.dll>> "%_MY_OPT_DDF_FILE%"
310echo %_MY_OPT_GADIR%\VBoxSVGA-x86.dll>> "%_MY_OPT_DDF_FILE%"
311echo %_MY_OPT_GADIR%\VBoxGL-x86.dll>> "%_MY_OPT_DDF_FILE%"
312:skip_amd64_files
313
314:no_additions_ddf
315
316rem
317rem Create the cabient file.
318rem Note! MakeCab is shipped on W10, so we ASSUME it's in the PATH.
319rem
320MakeCab.exe /v2 /F "%_MY_OPT_DDF_FILE%" || goto end_failed
321
322rem
323rem EV sign the cabient file.
324rem
325if not exist "sign-ev.cmd" goto end
326echo info: Now signing the created CAB file. Can take a few minutes...
327call sign-ev.cmd "%_MY_OPT_OUTPUT%" || goto end_failed
328
329goto end
330
331:end_failed
332@endlocal
333@endlocal
334@exit /b 1
335
336:end
337@endlocal
338@endlocal
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette