Skip to content

Commit

Permalink
[build] Generate catalogue file and sign binaries automatically
Browse files Browse the repository at this point in the history
Incorporate the building of a catalogue file (using inf2cat), and sign
binaries automatically as part of the build process.  If the official
Fen Systems Ltd. code-signing certificate is available, it will be
used; if not then a self-signed test certificate will be generated and
used instead.
  • Loading branch information
Michael Brown committed Oct 30, 2009
1 parent e2d450f commit 15c04ae
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 20 deletions.
2 changes: 1 addition & 1 deletion bin/sanbootconf.inf
Expand Up @@ -4,7 +4,7 @@ Class = System
ClassGUID = {4d36e97d-e325-11ce-bfc1-08002be10318}
Provider = %fensys%
CatalogFile = sanbootconf.cat
DriverVer = 28/10/2009,0.9.5
DriverVer = 10/28/2009,0.9.5

[Manufacturer]
%fensys% = FenSystems,ntx86,ntamd64
Expand Down
41 changes: 36 additions & 5 deletions src/build.bat
@@ -1,21 +1,52 @@
@echo off

if "%ddkdir%" == "" set ddkdir=C:\WinDDK\6001.18002
set setenv=%ddkdir%\bin\setenv.bat %ddkdir%

for /f "delims=" %%i in ('cd') do set cwd=%%i

rem Build code
rem
call :build driver chk w2k i386
call :build installer chk w2k i386
call :build driver chk wnet x64
call :build installer chk wnet x64

goto :end
rem Create catalogue file
rem
set oslist=2000,XP_x86,XP_x64,Server2003_x86,Server2003_x64,Vista_x86,Vista_x64,Server2008_x86,Server2008_x64
cmd /c "%setenv% && inf2cat /driver:%cwd%\..\bin /os:%oslist%" || exit /b 1

rem Sign files
rem
set certname="Fen Systems Ltd."
set xcertfile=%cwd%\certs\mscv_globalsign.cer
cmd /c "%setenv% && certmgr -put -s my -c -n %certname% NUL >NUL" && goto havecert
set certname="Test Certificate for sanbootconf"
set certfile=%cwd%\certs\testcer.cer
if exist %certfile% goto havecert
cmd /c "%setenv% && makecert -r -ss my -n CN=%certname% %certfile%" || exit /b 1
echo ***********************************************************************
echo * *
echo * Using a self-signed test certificate *
echo * *
echo * If you are using Windows Vista or newer, you must enable the use of *
echo * self-signed driver certificates by typing *
echo * *
echo * bcdedit -set TestSigning Yes *
echo * *
echo * before installing this driver. *
echo * *
echo ***********************************************************************
:havecert
set timestamp=http://timestamp.verisign.com/scripts/timestamp.dll
set desc="SAN Boot Configuration Driver"
cmd /c "%setenv% && signtool sign -ac %xcertfile% -n %certname% -t %timestamp% -d %desc% %cwd%\..\bin\i386\*.sys %cwd%\..\bin\amd64\*.sys %cwd%\..\bin\*.cat" || exit /b 1

exit /b

:build
set subdir=%cwd%\%1
set ddkenv=%2 %3 %4
echo Building %subdir% for %ddkenv%
cmd /c "%ddkdir%\bin\setenv.bat %ddkdir% %ddkenv% && cd /d %subdir% && build /cwg" || exit /b 1
goto :end

:end
cmd /c "%setenv% %ddkenv% && cd /d %subdir% && build /cwg" || exit /b 1
1 change: 1 addition & 0 deletions src/certs/.gitignore
@@ -0,0 +1 @@
testcer.cer
32 changes: 32 additions & 0 deletions src/certs/mscv_globalsign.cer
@@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFfzCCA2egAwIBAgIKYQt/awAAAAAAGTANBgkqhkiG9w0BAQUFADB/MQswCQYD
VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSkwJwYDVQQDEyBNaWNyb3Nv
ZnQgQ29kZSBWZXJpZmljYXRpb24gUm9vdDAeFw0wNjA1MjMxNzAwNTFaFw0xNjA1
MjMxNzEwNTFaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52
LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxTaWduIFJvb3Qg
Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZjc6j40+Kfvvx
i4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6scTHAH
oT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4
bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVt
bNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlw
R5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N89iFo7+ryUp9/
k5DPAgMBAAGjggEjMIIBHzARBgNVHSAECjAIMAYGBFUdIAAwNgYJKwYBBAGCNxUH
BCkwJwYfKwYBBAGCNxUIjeDRiU6E15zDB4amhvscj9O/phUBGQIBbgIBADALBgNV
HQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUYHtmGkUNl8qJUC99
BM00qP/8/UswHQYJKwYBBAGCNxQCBBAeDgBDAHIAbwBzAHMAQwBBMB8GA1UdIwQY
MBaAFGL7CiFbf0NuEdoJVFBr9dKWcfGeMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6
Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdENv
ZGVWZXJpZlJvb3QuY3JsMA0GCSqGSIb3DQEBBQUAA4ICAQATxWxeB388V/+bMV8/
vZVUJcZ5+SwxA01kaUtW2VuXb3zz8NAkZXU4Y5gTcBYT96cB8cYj4IWGbAvwgJRa
deh85B6StHO/wbOnsAvTGITLzAmjXJxPPrA6nC0bxATvlzeWb+Xsuqxqs9TiPN+L
JeesvGJFMd2kCnLkG/h4QwHMujkU3l2Qrthaz17KRoFRM9WmDlhn09hmWIgWm+6x
GsqtkROEIdqabiDv2gB0KLrJX/NNXcPaJWklVOpEvMObKTMc1jyWH4eBxVPXKicz
1C4ZfAhYbdtOGZmp6l/zmp2MUTpaXL0vqQg1m1Sn2zUaUhYzNDqjgARq/bSDjK2Q
zww6ZZbsM04YJrhJu+uBkv8TTTJLI8cz57ZxaxX2nIDmvLdsvkHVAzpxMxUAUHQ7
Dl35lqrtkD6rE0yAmSa8OKXrAjaJHbYgvoOrEPgZntdjedSusS9hNvlKS6gzxw5y
QfnxsZB+rkbv3jl7daBBFFkEHUK8R4i4Ew4F+h3wgI3/cMZ32EvcRg4jGnLVv97+
qq5pWDz8XEbk1YGai25lWXcaMqWQprZkk2T9B1PJoN4orSpsxjjRgc6Y9UAZ6SwX
Q6QmX9NEMFPkHQK6pAovFt16YCdSQrutmDcol+S40nkR4xCMSNUwXQoMUt71iOqN
Gi1nyfSAFIS3hQzRZiilxm8kYQ==
-----END CERTIFICATE-----
1 change: 1 addition & 0 deletions src/clean.bat
Expand Up @@ -2,6 +2,7 @@

del /q ..\bin\i386\*.*
del /q ..\bin\amd64\*.*
del /q ..\bin\*.cat
del /q msi\*.wixobj
del /q msi\*.wixpdb
del /q ..\*.msi
2 changes: 2 additions & 0 deletions src/msi/sanbootconf.wxs
Expand Up @@ -21,6 +21,8 @@
Source="setup.bat" Name="setup.bat" />
<File Id="sanbootconf.inf" DiskId="1"
Source="sanbootconf.inf" Name="sanbootconf.inf" />
<File Id="sanbootconf.cat" DiskId="1"
Source="sanbootconf.cat" Name="sanbootconf.cat" />
</Component>
<Directory Id="i386" Name="i386">
<Component Id="i386" Guid="0b76f1aa-37ff-4712-9ad7-c19935d038f8">
Expand Down
14 changes: 0 additions & 14 deletions src/testsign.bat

This file was deleted.

0 comments on commit 15c04ae

Please sign in to comment.