|
81 | 81 | <ExeBundleInstallerFile>$(PackageOutputPath)$(InstallerFileNameWithoutExtension).exe</ExeBundleInstallerFile> |
82 | 82 | <ExeBundleInstallerEngineFile>$(PackageOutputPath)$(InstallerFileNameWithoutExtension)-engine.exe</ExeBundleInstallerEngineFile> |
83 | 83 | </PropertyGroup> |
84 | | - |
85 | | - <!-- |
86 | | - Packages produced for Azure Linux must be signed with a special certificate. |
87 | | - RPM v4 doesn't support multiple signatures, so we must have two separate copies of the RPM for us to sign. |
88 | | - To solve this, we make a copy of the RPM for Azure Linux (which the Arcade SDK will sign with the correct certificate). |
89 | | - If Azure Linux ever switches to RPM v6, we should be able to remove this workaround if our signing tooling adds support for multiple signatures |
90 | | - (something RPM v6 supports but RPM v4 does not). |
91 | | - --> |
92 | | - <PropertyGroup Condition="'$(GenerateRpm)' == 'true'"> |
93 | | - <CreateRPMForAzureLinux>true</CreateRPMForAzureLinux> |
94 | | - <!-- PackageTargetOS is a distro-specific version suffix, used for deps packages, including the one for Azure Linux. --> |
95 | | - <CreateRPMForAzureLinux Condition="'$(PackageTargetOS)' != ''">false</CreateRPMForAzureLinux> |
96 | | - </PropertyGroup> |
97 | | - |
98 | | - <PropertyGroup Condition="'$(CreateRPMForAzureLinux)' == 'true'"> |
99 | | - <_AzureLinuxVersionSuffix>azl</_AzureLinuxVersionSuffix> |
100 | | - <_InstallerBuildPartAzureLinux>$(Version)-$(_AzureLinuxVersionSuffix)-$(_InstallerArchSuffix)</_InstallerBuildPartAzureLinux> |
101 | | - <_InstallerFileNameWithoutExtensionAzureLinux>$(InstallerName)-$(_InstallerBuildPartAzureLinux)$(CrossArchContentsBuildPart)</_InstallerFileNameWithoutExtensionAzureLinux> |
102 | | - <_InstallerFileAzureLinux>$(PackageOutputPath)$(_InstallerFileNameWithoutExtensionAzureLinux)$(InstallerExtension)</_InstallerFileAzureLinux> |
103 | | - </PropertyGroup> |
104 | 84 | </Target> |
105 | 85 |
|
106 | 86 | <!-- This target is a hook for users to add package info in a target. --> |
|
345 | 325 | <Message Text="$(MSBuildProjectName) -> $(_InstallerFile)" Importance="high" /> |
346 | 326 | </Target> |
347 | 327 |
|
| 328 | + <!-- |
| 329 | + Packages produced for Azure Linux must be signed with a special certificate. |
| 330 | + Additionally, some distros use old keys (SHA-1 based) so there's a different cert for new packages. |
| 331 | + RPM v4 doesn't support multiple signatures, so we must have two separate copies of the RPM for us to sign. |
| 332 | + To solve this, we make copies of the packages with special names (which the Arcade SDK will sign with the correct certificate). |
| 333 | + PackageTargetOS is a distro-specific version suffix, used for deps packages, including the one for Azure Linux. |
| 334 | + As a result, we don't need to create a separate copy of the package for Azure Linux, but we do need to create a copy with the new key (unless the target is Azure Linux). |
| 335 | + --> |
348 | 336 | <Target Name="_BuildAzureLinuxRpm" |
349 | 337 | AfterTargets="GenerateRpm" |
350 | | - Condition="'$(CreateRPMForAzureLinux)' == 'true'"> |
| 338 | + Condition="'$(PackageTargetOS)' == ''"> |
351 | 339 | <!-- AzureLinux --> |
| 340 | + <PropertyGroup> |
| 341 | + <_AzureLinuxVersionSuffix>azl</_AzureLinuxVersionSuffix> |
| 342 | + <_InstallerBuildPartAzureLinux>$(Version)-$(_AzureLinuxVersionSuffix)-$(_InstallerArchSuffix)</_InstallerBuildPartAzureLinux> |
| 343 | + <_InstallerFileNameWithoutExtensionAzureLinux>$(InstallerName)-$(_InstallerBuildPartAzureLinux)$(CrossArchContentsBuildPart)</_InstallerFileNameWithoutExtensionAzureLinux> |
| 344 | + <_InstallerFileAzureLinux>$(PackageOutputPath)$(_InstallerFileNameWithoutExtensionAzureLinux)$(InstallerExtension)</_InstallerFileAzureLinux> |
| 345 | + </PropertyGroup> |
352 | 346 | <Copy SourceFiles="$(_InstallerFile)" |
353 | 347 | DestinationFiles="$(_InstallerFileAzureLinux)" |
354 | 348 | OverwriteReadOnlyFiles="True" |
|
358 | 352 | <Message Text="$(MSBuildProjectName) -> $(_InstallerFileAzureLinux)" Importance="high" /> |
359 | 353 | </Target> |
360 | 354 |
|
| 355 | + <Target Name="_BuildNewKeyLinuxPackage" |
| 356 | + AfterTargets="GenerateRpm;GenerateDeb" |
| 357 | + Condition="'$(PackageTargetOS)' != 'azl'"> |
| 358 | + <!-- Packages to be signed with the new key --> |
| 359 | + <PropertyGroup> |
| 360 | + <_NewKeyVersionSuffix>newkey</_NewKeyVersionSuffix> |
| 361 | + <_InstallerBuildPartNewKey>$(Version)-$(_NewKeyVersionSuffix)-$(_InstallerArchSuffix)</_InstallerBuildPartNewKey> |
| 362 | + <_InstallerBuildPartNewKey Condition="'$(PackageTargetOS)' != ''">$(Version)-$(PackageTargetOS)-$(_NewKeyVersionSuffix)-$(_InstallerArchSuffix)</_InstallerBuildPartNewKey> |
| 363 | + <_InstallerFileNameWithoutExtensionNewKey>$(InstallerName)-$(_InstallerBuildPartNewKey)$(CrossArchContentsBuildPart)</_InstallerFileNameWithoutExtensionNewKey> |
| 364 | + <_InstallerFileNewKey>$(PackageOutputPath)$(_InstallerFileNameWithoutExtensionNewKey)$(InstallerExtension)</_InstallerFileNewKey> |
| 365 | + </PropertyGroup> |
| 366 | + <Copy SourceFiles="$(_InstallerFile)" |
| 367 | + DestinationFiles="$(_InstallerFileNewKey)" |
| 368 | + OverwriteReadOnlyFiles="True" |
| 369 | + SkipUnchangedFiles="False" |
| 370 | + UseHardlinksIfPossible="False" /> |
| 371 | + |
| 372 | + <Message Text="$(MSBuildProjectName) -> $(_InstallerFileNewKey)" Importance="high" /> |
| 373 | + </Target> |
| 374 | + |
361 | 375 | <!-- |
362 | 376 | Create MSI installer, using WiX tools. |
363 | 377 | --> |
|
0 commit comments