[Python-checkins] Enable signing Windows builds with SHA1 environment variable (GH-11279)
Steve Dower
webhook-mailer at python.org
Fri Dec 21 16:48:22 EST 2018
https://github.com/python/cpython/commit/d3bbc5241363d5fa4e749fe509c97c12501ae966
commit: d3bbc5241363d5fa4e749fe509c97c12501ae966
branch: master
author: Steve Dower <steve.dower at microsoft.com>
committer: GitHub <noreply at github.com>
date: 2018-12-21T13:48:18-08:00
summary:
Enable signing Windows builds with SHA1 environment variable (GH-11279)
files:
M PCbuild/pyproject.props
M Tools/msi/sdktools.psm1
diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props
index cf85e1b25d58..b0580169f5c3 100644
--- a/PCbuild/pyproject.props
+++ b/PCbuild/pyproject.props
@@ -187,10 +187,11 @@ public override bool Execute() {
<SdkBinPath Condition="!Exists($(SdkBinPath))">$(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Kits\Installed Roots at KitsRoot)\bin\x86</SdkBinPath>
<SdkBinPath Condition="!Exists($(SdkBinPath))">$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1A at InstallationFolder)\Bin\</SdkBinPath>
<_SignCommand Condition="Exists($(SdkBinPath)) and '$(SigningCertificate)' != '' and $(SupportSigning)">"$(SdkBinPath)\signtool.exe" sign /q /a /n "$(SigningCertificate)" /fd sha256 /t http://timestamp.verisign.com/scripts/timestamp.dll /d "Python $(PythonVersion)"</_SignCommand>
+ <_SignCommand Condition="Exists($(SdkBinPath)) and '$(SigningCertificateSha1)' != '' and $(SupportSigning)">"$(SdkBinPath)\signtool.exe" sign /q /a /sha1 "$(SigningCertificateSha1)" /fd sha256 /t http://timestamp.verisign.com/scripts/timestamp.dll /d "Python $(PythonVersion)"</_SignCommand>
<_MakeCatCommand Condition="Exists($(SdkBinPath))">"$(SdkBinPath)\makecat.exe"</_MakeCatCommand>
</PropertyGroup>
-
- <Target Name="_SignBuild" AfterTargets="AfterBuild" Condition="'$(SigningCertificate)' != '' and $(SupportSigning)">
+
+ <Target Name="_SignBuild" AfterTargets="AfterBuild" Condition="'$(_SignCommand)' != '' and $(SupportSigning)">
<Error Text="Unable to locate signtool.exe. Set /p:SignToolPath and rebuild" Condition="'$(_SignCommand)' == ''" />
<Exec Command='$(_SignCommand) "$(TargetPath)" || $(_SignCommand) "$(TargetPath)" || $(_SignCommand) "$(TargetPath)"' ContinueOnError="false" />
</Target>
diff --git a/Tools/msi/sdktools.psm1 b/Tools/msi/sdktools.psm1
index 81a74d3679d7..61edb3411760 100644
--- a/Tools/msi/sdktools.psm1
+++ b/Tools/msi/sdktools.psm1
@@ -21,6 +21,9 @@ function Sign-File {
$description = "Python";
}
}
+ if (-not $certsha1) {
+ $certsha1 = $env:SigningCertificateSha1;
+ }
if (-not $certname) {
$certname = $env:SigningCertificate;
}
@@ -32,7 +35,7 @@ function Sign-File {
if ($certsha1) {
SignTool sign /sha1 $certsha1 /fd sha256 /t http://timestamp.verisign.com/scripts/timestamp.dll /d $description $a
} elseif ($certname) {
- SignTool sign /n $certname /fd sha256 /t http://timestamp.verisign.com/scripts/timestamp.dll /d $description $a
+ SignTool sign /a /n $certname /fd sha256 /t http://timestamp.verisign.com/scripts/timestamp.dll /d $description $a
} elseif ($certfile) {
SignTool sign /f $certfile /fd sha256 /t http://timestamp.verisign.com/scripts/timestamp.dll /d $description $a
} else {
More information about the Python-checkins
mailing list