summaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2016-10-09 20:18:52 -0700
committerSteve Dower <steve.dower@microsoft.com>2016-10-09 20:18:52 -0700
commit292a11eff3d5093e0b9dfb1df3de35eb1c3d9a8d (patch)
tree92d86dde61d6f1477f4d0372aff5f1ed2e9e10fc /Tools
parent01c29c2b0cbe7645628250701cdda38f6d751d66 (diff)
downloadcpython-292a11eff3d5093e0b9dfb1df3de35eb1c3d9a8d.tar.gz
Issue #28402: Adds signed catalog files for stdlib on Windows.
Diffstat (limited to 'Tools')
-rw-r--r--Tools/msi/common.wxs4
-rw-r--r--Tools/msi/lib/lib.wixproj1
-rw-r--r--Tools/msi/lib/lib.wxs1
-rw-r--r--Tools/msi/lib/lib_files.wxs7
-rw-r--r--Tools/msi/msi.props2
-rw-r--r--Tools/msi/msi.targets33
-rw-r--r--Tools/msi/tools/tools.wixproj1
-rw-r--r--Tools/msi/tools/tools.wxs1
-rw-r--r--Tools/msi/tools/tools_files.wxs7
9 files changed, 55 insertions, 2 deletions
diff --git a/Tools/msi/common.wxs b/Tools/msi/common.wxs
index 1949e81c04..398d94a24d 100644
--- a/Tools/msi/common.wxs
+++ b/Tools/msi/common.wxs
@@ -63,7 +63,9 @@
<!-- Top-level directories -->
<Fragment>
<DirectoryRef Id="InstallDirectory">
- <Directory Id="DLLs" Name="DLLs" />
+ <Directory Id="DLLs" Name="DLLs">
+ <Directory Id="Catalogs" />
+ </Directory>
</DirectoryRef>
</Fragment>
diff --git a/Tools/msi/lib/lib.wixproj b/Tools/msi/lib/lib.wixproj
index 64e58787b8..26311ea327 100644
--- a/Tools/msi/lib/lib.wixproj
+++ b/Tools/msi/lib/lib.wixproj
@@ -27,6 +27,7 @@
<TargetBase>$(PySourcePath)Lib</TargetBase>
<Target_>Lib\</Target_>
<Group>lib_py</Group>
+ <IncludeInCat>true</IncludeInCat>
</InstallFiles>
</ItemGroup>
diff --git a/Tools/msi/lib/lib.wxs b/Tools/msi/lib/lib.wxs
index 2b04bcb304..2a3b9ecfee 100644
--- a/Tools/msi/lib/lib.wxs
+++ b/Tools/msi/lib/lib.wxs
@@ -11,6 +11,7 @@
<ComponentGroupRef Id="lib_py" />
<ComponentGroupRef Id="lib_files" />
<ComponentGroupRef Id="lib_extensions" />
+ <ComponentGroupRef Id="lib_cat" />
<ComponentRef Id="OptionalFeature" />
</Feature>
</Product>
diff --git a/Tools/msi/lib/lib_files.wxs b/Tools/msi/lib/lib_files.wxs
index 804ab0146d..eb26f8d29d 100644
--- a/Tools/msi/lib/lib_files.wxs
+++ b/Tools/msi/lib/lib_files.wxs
@@ -70,4 +70,11 @@
</Component>
</ComponentGroup>
</Fragment>
+ <Fragment>
+ <ComponentGroup Id="lib_cat">
+ <Component Id="lib_cat" Directory="Catalogs" Guid="*">
+ <File Name="python_lib.cat" KeyPath="yes" />
+ </Component>
+ </ComponentGroup>
+ </Fragment>
</Wix>
diff --git a/Tools/msi/msi.props b/Tools/msi/msi.props
index 745fc54117..60abba1f7b 100644
--- a/Tools/msi/msi.props
+++ b/Tools/msi/msi.props
@@ -11,6 +11,7 @@
<Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
<Platform Condition="'$(Platform)' == ''">x86</Platform>
<InstallScope Condition="'$(InstallScope)' != 'perMachine'">perUser</InstallScope>
+ <_MakeCatCommand Condition="'$(_MakeCatCommand)' == ''">makecat</_MakeCatCommand>
</PropertyGroup>
<Import Project="wix.props" />
@@ -103,6 +104,7 @@
<Group>generated_filelist</Group>
<Condition></Condition>
<DiskId></DiskId>
+ <IncludeInCat>false</IncludeInCat>
</InstallFiles>
<LinkerBindInputPaths>
<Visible>false</Visible>
diff --git a/Tools/msi/msi.targets b/Tools/msi/msi.targets
index 86be35badb..9283a1ed6c 100644
--- a/Tools/msi/msi.targets
+++ b/Tools/msi/msi.targets
@@ -12,8 +12,10 @@
<_Source>%(Source)$([msbuild]::MakeRelative(%(SourceBase), %(FullPath)))</_Source>
<_Target>%(Target_)$([msbuild]::MakeRelative(%(TargetBase), %(FullPath)))</_Target>
</InstallFiles>
+
+ <_CatalogFiles Include="@(InstallFiles)" Condition="%(InstallFiles.IncludeInCat) and ''!=$([System.IO.File]::ReadAllText(%(InstallFiles.FullPath)))" />
</ItemGroup>
-
+
<WriteLinesToFile File="$(_FileListTarget)" Lines="@(InstallFiles->'&quot;%(_Source)&quot;,&quot;%(_Target)&quot;,&quot;%(Group)&quot;,&quot;%(DiskId)&quot;,&quot;%(Condition)&quot;')" Overwrite="true" />
<Exec Command='"$(PythonExe)" csv_to_wxs.py "$(_FileListTarget)" "$(_InstallFilesTarget)"'
WorkingDirectory="$(MSBuildThisFileDirectory)" />
@@ -24,6 +26,35 @@
</ItemGroup>
</Target>
+ <Target Name="GenerateCatalog" AfterTargets="ProcessInstallFiles" Condition="'@(_CatalogFiles)' != ''">
+ <PropertyGroup>
+ <_CatFileSourceTarget>$(IntermediateOutputPath)$(MSBuildProjectName).cdf</_CatFileSourceTarget>
+ <_CatFileTarget>$(IntermediateOutputPath)python_$(MSBuildProjectName).cat</_CatFileTarget>
+ <_CatFile>[CatalogHeader]
+Name=$([System.IO.Path]::GetFileName($(_CatFileTarget)))
+ResultDir=$([System.IO.Path]::GetDirectoryName($(_CatFileTarget)))
+PublicVersion=1
+CatalogVersion=2
+HashAlgorithms=SHA256
+PageHashes=false
+EncodingType=
+
+[CatalogFiles]
+@(_CatalogFiles->'&lt;HASH&gt;%(Filename)%(Extension)=%(FullPath)','
+')
+</_CatFile>
+ </PropertyGroup>
+
+ <WriteLinesToFile File="$(_CatFileSourceTarget)" Lines="$(_CatFile)" Overwrite="true" />
+ <Exec Command='$(_MakeCatCommand) "$(_CatFileSourceTarget)"' WorkingDirectory="$(MSBuildThisFileDirectory)" />
+ <Exec Command='$(_SignCommand) "$(_CatFileTarget)"' WorkingDirectory="$(MSBuildThisFileDirectory)"
+ Condition="Exists($(_CatFileTarget)) and '$(_SignCommand)' != ''" />
+
+ <ItemGroup>
+ <FileWrites Include="$(_CatFileSourceTarget);$(_CatFileTarget)" />
+ </ItemGroup>
+ </Target>
+
<Target Name="_TransformWxlTemplates" AfterTargets="PrepareForBuild" Inputs="@(WxlTemplate);$(PySourcePath)include\patchlevel.h" Outputs="$(IntermediateOutputPath)%(Filename).wxl">
<PropertyGroup Condition="'@(WxlTemplate)' != ''">
<_Content>$([System.IO.File]::ReadAllText(%(WxlTemplate.FullPath)).Replace(`{{ShortVersion}}`, `$(MajorVersionNumber).$(MinorVersionNumber)$(PyTestExt)`).Replace(`{{LongVersion}}`, `$(PythonVersion)$(PyTestExt)`).Replace(`{{Bitness}}`, `$(Bitness)`))</_Content>
diff --git a/Tools/msi/tools/tools.wixproj b/Tools/msi/tools/tools.wixproj
index f43cf3309e..b7fc41ee92 100644
--- a/Tools/msi/tools/tools.wixproj
+++ b/Tools/msi/tools/tools.wixproj
@@ -36,6 +36,7 @@
<TargetBase>$(PySourcePath)</TargetBase>
<Target_></Target_>
<Group>tools_py</Group>
+ <IncludeInCat>true</IncludeInCat>
</InstallFiles>
</ItemGroup>
diff --git a/Tools/msi/tools/tools.wxs b/Tools/msi/tools/tools.wxs
index 8f8418a46c..7a805d0612 100644
--- a/Tools/msi/tools/tools.wxs
+++ b/Tools/msi/tools/tools.wxs
@@ -9,6 +9,7 @@
<Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
<ComponentGroupRef Id="tools_py" />
<ComponentGroupRef Id="tools_scripts" />
+ <ComponentGroupRef Id="tools_cat" />
<ComponentRef Id="OptionalFeature" />
</Feature>
</Product>
diff --git a/Tools/msi/tools/tools_files.wxs b/Tools/msi/tools/tools_files.wxs
index 3ae0db2e1f..9c76b1b444 100644
--- a/Tools/msi/tools/tools_files.wxs
+++ b/Tools/msi/tools/tools_files.wxs
@@ -13,4 +13,11 @@
</Component>
</ComponentGroup>
</Fragment>
+ <Fragment>
+ <ComponentGroup Id="tools_cat">
+ <Component Id="tools_cat" Directory="Catalogs" Guid="*">
+ <File Name="python_tools.cat" KeyPath="yes" />
+ </Component>
+ </ComponentGroup>
+ </Fragment>
</Wix>