dotnet-installer/src/redist/targets/GenerateDebs.targets

448 lines
26 KiB
Text
Raw Normal View History

2016-06-28 01:26:57 +00:00
<?xml version="1.0" encoding="utf-8"?>
2016-08-28 04:10:23 +00:00
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2016-08-25 22:53:15 +00:00
2018-11-02 06:15:59 +00:00
<!-- dotnet deb-tool -->
<ItemGroup>
<DotNetCliToolReference Include="dotnet-deb-tool" Version="$(DotnetDebToolVersion)" />
</ItemGroup>
2018-10-31 23:42:59 +00:00
<Target Name="SetupDebProps"
DependsOnTargets="GetCurrentRuntimeInformation;
2018-11-02 06:15:59 +00:00
SetupFileExtensions;
CalculateLinuxNativeInstallerDependencyVersions;
SetSdkBrandingInfo">
2018-10-31 23:42:59 +00:00
<PropertyGroup>
2018-11-02 06:15:59 +00:00
<DotnetDebToolDir>$(MSBuildProjectDirectory)</DotnetDebToolDir>
2018-10-31 23:42:59 +00:00
</PropertyGroup>
<!-- constants -->
<PropertyGroup>
<DebianInstalledDirectory>/usr/share/dotnet</DebianInstalledDirectory>
<LayoutPackageRootDirName>package_root</LayoutPackageRootDirName>
<LayoutAbsolutePlacementDirName>$</LayoutAbsolutePlacementDirName>
<LayoutSamplesDirName>samples</LayoutSamplesDirName>
<LayoutDocsDirName>docs</LayoutDocsDirName>
<LayoutDebianFilesDirName>debian</LayoutDebianFilesDirName>
</PropertyGroup>
<!-- Package Identities -->
<PropertyGroup>
<RuntimeDepsPackageVersion>$(MicrosoftNETCoreAppMajorMinorVersion)</RuntimeDepsPackageVersion>
<RuntimeDepsPackageName>dotnet-runtime-deps-$(RuntimeDepsPackageVersion)</RuntimeDepsPackageName>
<DownloadedRuntimeDepsInstallerFile>$(DownloadsFolder)$(DownloadedRuntimeDepsInstallerFileName)</DownloadedRuntimeDepsInstallerFile>
2018-10-31 23:42:59 +00:00
<SdkDebianPackageVersion>$(MajorMinorVersion)</SdkDebianPackageVersion>
<SdkDebianPackageName>dotnet-sdk-$(SdkDebianPackageVersion)</SdkDebianPackageName>
<SharedFxDebianPackageFileVersion>$(MicrosoftNETCoreAppPackageVersion)</SharedFxDebianPackageFileVersion>
<SharedFxDebianPackageVersion>$(MicrosoftNETCoreAppMajorMinorVersion)</SharedFxDebianPackageVersion>
<SharedFxDebianPackageFileName>dotnet-runtime-$(SharedFxDebianPackageFileVersion)</SharedFxDebianPackageFileName>
<SharedFxDebianPackageFileName>$(SharedFxDebianPackageFileName.ToLower())</SharedFxDebianPackageFileName>
<SharedFxDebianPackageName>dotnet-runtime-$(SharedFxDebianPackageVersion)</SharedFxDebianPackageName>
<SharedFxDebianPackageName>$(SharedFxDebianPackageName.ToLower())</SharedFxDebianPackageName>
<DownloadedSharedFrameworkInstallerFile>$(DownloadsFolder)$(DownloadedSharedFrameworkInstallerFileName)</DownloadedSharedFrameworkInstallerFile>
<NetCoreAppTargetingPackDebianPackageFileName>dotnet-targeting-pack-$(SharedFxDebianPackageFileVersion)</NetCoreAppTargetingPackDebianPackageFileName>
<NetCoreAppTargetingPackDebianPackageFileName>$(NetCoreAppTargetingPackDebianPackageFileName.ToLower())</NetCoreAppTargetingPackDebianPackageFileName>
<NetCoreAppTargetingPackDebianPackageName>dotnet-targeting-pack-$(SharedFxDebianPackageVersion)</NetCoreAppTargetingPackDebianPackageName>
<NetCoreAppTargetingPackDebianPackageName>$(NetCoreAppTargetingPackDebianPackageName.ToLower())</NetCoreAppTargetingPackDebianPackageName>
<DownloadedNetCoreAppTargetingPackInstallerFile>$(DownloadsFolder)$(DownloadedNetCoreAppTargetingPackInstallerFileName)</DownloadedNetCoreAppTargetingPackInstallerFile>
<NetStandardTargetingPackDebianPackageFileName>netstandard-targeting-pack-$(NETStandardLibraryRefPackageVersion)</NetStandardTargetingPackDebianPackageFileName>
<NetStandardTargetingPackDebianPackageFileName>$(NetStandardTargetingPackDebianPackageFileName.ToLower())</NetStandardTargetingPackDebianPackageFileName>
<NetStandardTargetingPackDebianPackageName>netstandard-targeting-pack-$(NETStandardLibraryRefPackageVersion.Split('.')[0]).$(NETStandardLibraryRefPackageVersion.Split('.')[1])</NetStandardTargetingPackDebianPackageName>
<NetStandardTargetingPackDebianPackageName>$(NetStandardTargetingPackDebianPackageName.ToLower())</NetStandardTargetingPackDebianPackageName>
<DownloadedNetStandardTargetingPackInstallerFile>$(DownloadsFolder)$(DownloadedNetStandardTargetingPackInstallerFileName)</DownloadedNetStandardTargetingPackInstallerFile>
<NetCoreAppHostPackDebianPackageFileName>dotnet-apphost-pack-$(SharedFxDebianPackageFileVersion)</NetCoreAppHostPackDebianPackageFileName>
<NetCoreAppHostPackDebianPackageFileName>$(NetCoreAppHostPackDebianPackageFileName.ToLower())</NetCoreAppHostPackDebianPackageFileName>
<NetCoreAppHostPackDebianPackageName>dotnet-apphost-pack-$(SharedFxDebianPackageVersion)</NetCoreAppHostPackDebianPackageName>
<NetCoreAppHostPackDebianPackageName>$(NetCoreAppHostPackDebianPackageName.ToLower())</NetCoreAppHostPackDebianPackageName>
<DownloadedNetCoreAppHostPackInstallerFile>$(DownloadsFolder)$(DownloadedNetCoreAppHostPackInstallerFileName)</DownloadedNetCoreAppHostPackInstallerFile>
2018-10-31 23:42:59 +00:00
<HostFxrDebianPackageFileName>dotnet-hostfxr-$(HostFxrVersion)</HostFxrDebianPackageFileName>
<HostFxrDebianPackageFileName>$(HostFxrDebianPackageFileName.ToLower())</HostFxrDebianPackageFileName>
<HostFxrDebianPackageName>dotnet-hostfxr-$(HostFxrMajorMinorVersion)</HostFxrDebianPackageName>
<HostFxrDebianPackageName>$(HostFxrDebianPackageName.ToLower())</HostFxrDebianPackageName>
<DownloadedHostFxrInstallerFile>$(DownloadsFolder)$(DownloadedHostFxrInstallerFileName)</DownloadedHostFxrInstallerFile>
<SharedHostDebianPackageName>dotnet-host</SharedHostDebianPackageName>
<DownloadedSharedHostInstallerFile>$(DownloadsFolder)$(DownloadedSharedHostInstallerFileName)</DownloadedSharedHostInstallerFile>
Prepare for 3.0.1xx servicing We were bumping targeting pack, framework-dependent default runtime version, and self-contained default (latest) runtime version in unison. This only works for previews where these versions are all the same always. Now that we're servicing 3.0, we: 1. Pin targeting packs to 3.0.0 2. Fix default framework-dependent runtime version at 3.0.0 This change also: * Removes dependencies on legacy/internal netcoreapp packages. We now use Microsoft.NETCore.App.Internal version exclusively to calculate the blob storage path for core-setup. * Uses PackageDownload for all templates, including latest. PackageReference had been used for latest only because it hid another bug with the netcoreapp reference of redist.csproj that is fixed here. That reference is now a FrameworkReference as it should be. * Removes a bunch of shenanigans from GenerateBundledVersions.props that were causing issues with above. One casualty of that is that we hard code the RID lists for runtime pack, which I don't think is too bad, and actually will make it easier to merge in source build patches. * Cleans up how runtime and targeting pack versions are referenced throughout, removing incorrect assumptions about them being the same. * Incorporates a prior closed PR to use suffixed version for blob storage, even when assets coming from blob storage are stabilized. It needed changes to merge with this. Note: * A similar theoretical servicing issue exists for the versions of apphost, hostfxr, shared host, which are still assumed to be the same as the runtime version in several places. If we choose to service those independently, more work is required. * There will be a 3.0.1 ASP.NET targeting pack, and so we will have to unpin that once it is ready. This change establishes the baseline of all targeting packs being pinnned, and they can be unpinned in the (hopefully rare) cases where they need to be serviced.
2019-10-03 17:33:20 +00:00
<AspNetCoreSharedFxDebianPackageFileName>aspnetcore-runtime-$(MicrosoftAspNetCoreAppRuntimePackageVersion)</AspNetCoreSharedFxDebianPackageFileName>
2018-10-31 23:42:59 +00:00
<AspNetCoreSharedFxDebianPackageFileName>$(AspNetCoreSharedFxDebianPackageFileName.ToLower())</AspNetCoreSharedFxDebianPackageFileName>
<AspNetCoreSharedFxDebianPackageName>aspnetcore-runtime-$(AspNetCoreMajorMinorVersion)</AspNetCoreSharedFxDebianPackageName>
<AspNetCoreSharedFxDebianPackageName>$(AspNetCoreSharedFxDebianPackageName.ToLower())</AspNetCoreSharedFxDebianPackageName>
<DownloadedAspNetCoreSharedFxInstallerFile>$(DownloadsFolder)$(DownloadedAspNetCoreSharedFxInstallerFileName)</DownloadedAspNetCoreSharedFxInstallerFile>
Prepare for 3.0.1xx servicing We were bumping targeting pack, framework-dependent default runtime version, and self-contained default (latest) runtime version in unison. This only works for previews where these versions are all the same always. Now that we're servicing 3.0, we: 1. Pin targeting packs to 3.0.0 2. Fix default framework-dependent runtime version at 3.0.0 This change also: * Removes dependencies on legacy/internal netcoreapp packages. We now use Microsoft.NETCore.App.Internal version exclusively to calculate the blob storage path for core-setup. * Uses PackageDownload for all templates, including latest. PackageReference had been used for latest only because it hid another bug with the netcoreapp reference of redist.csproj that is fixed here. That reference is now a FrameworkReference as it should be. * Removes a bunch of shenanigans from GenerateBundledVersions.props that were causing issues with above. One casualty of that is that we hard code the RID lists for runtime pack, which I don't think is too bad, and actually will make it easier to merge in source build patches. * Cleans up how runtime and targeting pack versions are referenced throughout, removing incorrect assumptions about them being the same. * Incorporates a prior closed PR to use suffixed version for blob storage, even when assets coming from blob storage are stabilized. It needed changes to merge with this. Note: * A similar theoretical servicing issue exists for the versions of apphost, hostfxr, shared host, which are still assumed to be the same as the runtime version in several places. If we choose to service those independently, more work is required. * There will be a 3.0.1 ASP.NET targeting pack, and so we will have to unpin that once it is ready. This change establishes the baseline of all targeting packs being pinnned, and they can be unpinned in the (hopefully rare) cases where they need to be serviced.
2019-10-03 17:33:20 +00:00
<AspNetTargetingPackDebianPackageFileName>aspnetcore-targeting-pack-$(MicrosoftAspNetCoreAppRefPackageVersion)</AspNetTargetingPackDebianPackageFileName>
<AspNetTargetingPackDebianPackageFileName>$(AspNetTargetingPackDebianPackageFileName.ToLower())</AspNetTargetingPackDebianPackageFileName>
<AspNetTargetingPackDebianPackageName>aspnetcore-targeting-pack-$(AspNetCoreMajorMinorVersion)</AspNetTargetingPackDebianPackageName>
<AspNetTargetingPackDebianPackageName>$(AspNetTargetingPackDebianPackageName.ToLower())</AspNetTargetingPackDebianPackageName>
<DownloadedAspNetTargetingPackInstallerFile>$(DownloadsFolder)$(DownloadedAspNetTargetingPackInstallerFileName)</DownloadedAspNetTargetingPackInstallerFile>
</PropertyGroup>
2018-10-31 23:42:59 +00:00
<!-- Inputs -->
<PropertyGroup>
2018-11-02 06:15:59 +00:00
<!-- Need to acquire manpage files from CLI repo: https://github.com/dotnet/cli/issues/10266 -->
<ManpagesDirectory>$(RepoRoot)Documentation/manpages</ManpagesDirectory>
<EndToEndTestProject>$(RepoRoot)test/EndToEnd/EndToEnd.Tests.csproj</EndToEndTestProject>
<CLISdkRoot>$(RedistLayoutPath)sdk/</CLISdkRoot>
<TemplatesRoot>$(RedistLayoutPath)templates/</TemplatesRoot>
2018-10-31 23:42:59 +00:00
</PropertyGroup>
<ItemGroup>
<CLISdkFiles Include="$(CLISdkRoot)**/*" />
<TemplatesFiles Include="$(TemplatesRoot)**/*" />
2018-10-31 23:42:59 +00:00
<SdkDebManPageFiles Include="$(ManpagesDirectory)/**/*" />
</ItemGroup>
<!-- Output Directories -->
<PropertyGroup>
2018-11-02 06:15:59 +00:00
<InstallerOutputDirectory>$(ArtifactsShippingPackagesDir)</InstallerOutputDirectory>
2018-11-06 22:29:00 +00:00
<SdkDebInstallerFile>$(InstallerOutputDirectory)$(DistroSpecificArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)$(InstallerExtension)</SdkDebInstallerFile>
2018-11-02 06:15:59 +00:00
<SdkDebianIntermediateDirectory>$(IntermediateOutputPath)debian/sdk/</SdkDebianIntermediateDirectory>
<DotNetDebToolOutputDirectory>$(SdkDebianIntermediateDirectory)deb-tool-output</DotNetDebToolOutputDirectory>
<DebianTestResultsXmlFile>$(SdkDebianIntermediateDirectory)debian-testResults.xml</DebianTestResultsXmlFile>
2018-10-31 23:42:59 +00:00
</PropertyGroup>
<!-- Layout Directories -->
<PropertyGroup>
2018-11-02 06:15:59 +00:00
<LayoutDirectory>$(SdkDebianIntermediateDirectory)debianLayoutDirectory/</LayoutDirectory>
<LayoutPackageRootDir>$(LayoutDirectory)$(LayoutPackageRootDirName)</LayoutPackageRootDir>
<LayoutAbsolutePlacementDir>$(LayoutDirectory)$(LayoutAbsolutePlacementDirName)</LayoutAbsolutePlacementDir>
<LayoutSamplesDir>$(LayoutDirectory)$(LayoutSamplesDirName)</LayoutSamplesDir>
<LayoutDocsDir>$(LayoutDirectory)$(LayoutDocsDirName)</LayoutDocsDir>
<LayoutDebianFilesDir>$(LayoutDirectory)$(LayoutDebianFilesDirName)</LayoutDebianFilesDir>
2018-10-31 23:42:59 +00:00
</PropertyGroup>
<!-- debian_config.json -->
<PropertyGroup>
2018-11-02 06:15:59 +00:00
<DebianConfigTemplateFile>$(MSBuildThisFileDirectory)packaging/deb/dotnet-debian_config.json</DebianConfigTemplateFile>
<DebianConfigJsonFile>$(LayoutDirectory)debian_config.json</DebianConfigJsonFile>
2018-10-31 23:42:59 +00:00
</PropertyGroup>
<PropertyGroup>
2018-11-02 06:15:59 +00:00
<DebianPostinstTemplateFile>$(MSBuildThisFileDirectory)packaging/deb/postinst</DebianPostinstTemplateFile>
<DebianPostinstFile>$(LayoutDirectory)debian/postinst</DebianPostinstFile>
2018-10-31 23:42:59 +00:00
</PropertyGroup>
<ItemGroup>
<DebianConfigTokenValues Include="%SHARED_FRAMEWORK_DEBIAN_PACKAGE_NAME%">
<ReplacementString>$(SharedFxDebianPackageName)</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%ASPNETCORE_SHAREDFX_DEBIAN_PACKAGE_NAME%">
<ReplacementString>$(AspNetCoreSharedFxDebianPackageName)</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%NETCOREAPP_TARGETING_PACK_DEBIAN_PACKAGE_NAME%">
<ReplacementString>$(NetCoreAppTargetingPackDebianPackageName)</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%NETCORE_APPHOST_PACK_DEBIAN_PACKAGE_NAME%">
<ReplacementString>$(NetCoreAppHostPackDebianPackageName)</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%NETSTANDARD_TARGETING_PACK_DEBIAN_PACKAGE_NAME%">
<ReplacementString>$(NetStandardTargetingPackDebianPackageName)</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%ASPNET_TARGETING_PACK_DEBIAN_PACKAGE_NAME%">
<ReplacementString>$(AspNetTargetingPackDebianPackageName)</ReplacementString>
</DebianConfigTokenValues>
2018-10-31 23:42:59 +00:00
<DebianConfigTokenValues Include="%SHARED_FRAMEWORK_DEBIAN_PACKAGE_ADDITIONAL_DEPENDENCY%"
Condition="'$(IncludeAdditionalSharedFrameworks)' == 'true'">
<ReplacementString>
,
"$(AdditionalSharedFxDebianPackageName)" : {}
</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%SHARED_FRAMEWORK_DEBIAN_PACKAGE_ADDITIONAL_DEPENDENCY%"
Condition="'$(IncludeAdditionalSharedFrameworks)' != 'true'">
<ReplacementString></ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%SDK_NUGET_VERSION%">
<ReplacementString>$(MajorMinorVersion)</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%CLI_SDK_BRAND_NAME%">
<ReplacementString>$(SdkBrandName)</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%SHARED_FRAMEWORK_DEBIAN_PACKAGE_VERSION%">
Prepare for 3.0.1xx servicing We were bumping targeting pack, framework-dependent default runtime version, and self-contained default (latest) runtime version in unison. This only works for previews where these versions are all the same always. Now that we're servicing 3.0, we: 1. Pin targeting packs to 3.0.0 2. Fix default framework-dependent runtime version at 3.0.0 This change also: * Removes dependencies on legacy/internal netcoreapp packages. We now use Microsoft.NETCore.App.Internal version exclusively to calculate the blob storage path for core-setup. * Uses PackageDownload for all templates, including latest. PackageReference had been used for latest only because it hid another bug with the netcoreapp reference of redist.csproj that is fixed here. That reference is now a FrameworkReference as it should be. * Removes a bunch of shenanigans from GenerateBundledVersions.props that were causing issues with above. One casualty of that is that we hard code the RID lists for runtime pack, which I don't think is too bad, and actually will make it easier to merge in source build patches. * Cleans up how runtime and targeting pack versions are referenced throughout, removing incorrect assumptions about them being the same. * Incorporates a prior closed PR to use suffixed version for blob storage, even when assets coming from blob storage are stabilized. It needed changes to merge with this. Note: * A similar theoretical servicing issue exists for the versions of apphost, hostfxr, shared host, which are still assumed to be the same as the runtime version in several places. If we choose to service those independently, more work is required. * There will be a 3.0.1 ASP.NET targeting pack, and so we will have to unpin that once it is ready. This change establishes the baseline of all targeting packs being pinnned, and they can be unpinned in the (hopefully rare) cases where they need to be serviced.
2019-10-03 17:33:20 +00:00
<ReplacementString>$(MicrosoftNETCoreAppRuntimePackageVersionWithTilde)</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%NETCOREAPP_TARGETING_PACK_DEBIAN_PACKAGE_VERSION%">
<ReplacementString>$(MicrosoftNETCoreAppRefPackageVersionWithTilde)</ReplacementString>
2018-10-31 23:42:59 +00:00
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%NET_STANDARD_DEBIAN_PACKAGE_VERSION%">
<ReplacementString>$(NetStandardTargetingPackPackageVersionWithTilde)</ReplacementString>
</DebianConfigTokenValues>
2018-10-31 23:42:59 +00:00
<DebianConfigTokenValues Include="%ASPNETCORE_SHAREDFX_DEBIAN_PACKAGE_VERSION%">
Prepare for 3.0.1xx servicing We were bumping targeting pack, framework-dependent default runtime version, and self-contained default (latest) runtime version in unison. This only works for previews where these versions are all the same always. Now that we're servicing 3.0, we: 1. Pin targeting packs to 3.0.0 2. Fix default framework-dependent runtime version at 3.0.0 This change also: * Removes dependencies on legacy/internal netcoreapp packages. We now use Microsoft.NETCore.App.Internal version exclusively to calculate the blob storage path for core-setup. * Uses PackageDownload for all templates, including latest. PackageReference had been used for latest only because it hid another bug with the netcoreapp reference of redist.csproj that is fixed here. That reference is now a FrameworkReference as it should be. * Removes a bunch of shenanigans from GenerateBundledVersions.props that were causing issues with above. One casualty of that is that we hard code the RID lists for runtime pack, which I don't think is too bad, and actually will make it easier to merge in source build patches. * Cleans up how runtime and targeting pack versions are referenced throughout, removing incorrect assumptions about them being the same. * Incorporates a prior closed PR to use suffixed version for blob storage, even when assets coming from blob storage are stabilized. It needed changes to merge with this. Note: * A similar theoretical servicing issue exists for the versions of apphost, hostfxr, shared host, which are still assumed to be the same as the runtime version in several places. If we choose to service those independently, more work is required. * There will be a 3.0.1 ASP.NET targeting pack, and so we will have to unpin that once it is ready. This change establishes the baseline of all targeting packs being pinnned, and they can be unpinned in the (hopefully rare) cases where they need to be serviced.
2019-10-03 17:33:20 +00:00
<ReplacementString>$(AspNetCoreRuntimeVersionWithTilde)</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%ASPNET_TARGETING_PACK_DEBIAN_PACKAGE_VERSION%">
<ReplacementString>$(AspNetCoreRefVersionWithTilde)</ReplacementString>
2018-10-31 23:42:59 +00:00
</DebianConfigTokenValues>
<DebianPostInstTokenValues Include="%SDK_VERSION%">
<ReplacementString>$(Version)</ReplacementString>
2018-10-31 23:42:59 +00:00
</DebianPostInstTokenValues>
</ItemGroup>
<ItemGroup>
<TestSdkDebTaskEnvironmentVariables Include="PATH=$(DebianInstalledDirectory)$(PathListSeparator)$(PATH)" />
2018-10-31 23:42:59 +00:00
<TestSdkDebTaskEnvironmentVariables Include="TEST_ARTIFACTS=$(TestArtifactsDir)" />
<TestSdkDebTaskEnvironmentVariables Include="TEST_PACKAGES=$(TestPackagesDir)" />
<TestSdkDebTaskEnvironmentVariables Include="PreviousStageProps=$(NextStagePropsPath)" />
2018-10-31 23:42:59 +00:00
<!-- Consumed By Publish -->
2018-11-06 22:29:00 +00:00
<GeneratedInstallers Include="$(SdkDebInstallerFile)" />
2018-10-31 23:42:59 +00:00
</ItemGroup>
</Target>
2016-08-19 21:52:06 +00:00
2018-11-05 21:38:10 +00:00
<!-- Outer GenerateDebs target so that GetCurrentRuntimeInformation will set IsDebianBasedDistro before
GenerateDebsInner condition is evaluated -->
<Target Name="GenerateDebs"
2018-11-02 06:15:59 +00:00
DependsOnTargets="GetCurrentRuntimeInformation;
GenerateDebsInner"/>
2018-11-05 21:38:10 +00:00
<Target Name="GenerateDebsInner"
Prepare for 3.0.1xx servicing We were bumping targeting pack, framework-dependent default runtime version, and self-contained default (latest) runtime version in unison. This only works for previews where these versions are all the same always. Now that we're servicing 3.0, we: 1. Pin targeting packs to 3.0.0 2. Fix default framework-dependent runtime version at 3.0.0 This change also: * Removes dependencies on legacy/internal netcoreapp packages. We now use Microsoft.NETCore.App.Internal version exclusively to calculate the blob storage path for core-setup. * Uses PackageDownload for all templates, including latest. PackageReference had been used for latest only because it hid another bug with the netcoreapp reference of redist.csproj that is fixed here. That reference is now a FrameworkReference as it should be. * Removes a bunch of shenanigans from GenerateBundledVersions.props that were causing issues with above. One casualty of that is that we hard code the RID lists for runtime pack, which I don't think is too bad, and actually will make it easier to merge in source build patches. * Cleans up how runtime and targeting pack versions are referenced throughout, removing incorrect assumptions about them being the same. * Incorporates a prior closed PR to use suffixed version for blob storage, even when assets coming from blob storage are stabilized. It needed changes to merge with this. Note: * A similar theoretical servicing issue exists for the versions of apphost, hostfxr, shared host, which are still assumed to be the same as the runtime version in several places. If we choose to service those independently, more work is required. * There will be a 3.0.1 ASP.NET targeting pack, and so we will have to unpin that once it is ready. This change establishes the baseline of all targeting packs being pinnned, and they can be unpinned in the (hopefully rare) cases where they need to be serviced.
2019-10-03 17:33:20 +00:00
DependsOnTargets="SetupBundledComponents;
SetupDebProps;
TestDebuild;
BuildSdkDeb;
TestSdkDeb"
Condition=" '$(IsDebianBaseDistro)' == 'True' "
2016-08-28 04:10:23 +00:00
Outputs="@(GeneratedInstallers)"/>
2016-08-18 17:11:20 +00:00
2018-11-02 06:15:59 +00:00
<Target Name="ReadAspNetCoreSharedRuntimeVersionFile"
DependsOnTargets="DownloadBundledComponents">
<ItemGroup>
<File Include="$(DownloadsFolder)$(AspNetCoreSharedFxBaseRuntimeVersionFileName)" />
</ItemGroup>
<ReadLinesFromFile File="@(File)">
<Output
TaskParameter="Lines"
PropertyName="AspNetCoreSharedFxBaseRuntimeVersion"/>
</ReadLinesFromFile>
</Target>
<Target Name="GetAspNetSharedFxInstallArgs" DependsOnTargets="SetupDebProps;ReadAspNetCoreSharedRuntimeVersionFile">
<PropertyGroup>
2018-07-10 01:05:56 +00:00
<AspNetVersionPrereleaseSeparator>$(AspNetCoreSharedFxBaseRuntimeVersion.IndexOf('-'))</AspNetVersionPrereleaseSeparator>
<AspNetSimpleVersion>$(AspNetCoreSharedFxBaseRuntimeVersion)</AspNetSimpleVersion>
<AspNetSimpleVersion Condition=" '$(AspNetVersionPrereleaseSeparator)' != -1 ">$(AspNetCoreSharedFxBaseRuntimeVersion.Substring(0, $(AspNetVersionPrereleaseSeparator)))</AspNetSimpleVersion>
<AspNetVersionPatchSeparator>$(AspNetSimpleVersion.LastIndexOf('.'))</AspNetVersionPatchSeparator>
<AspNetSimpleVersion Condition=" '$(AspNetVersionPatchSeparator)' != -1 ">$(AspNetSimpleVersion.Substring(0, $(AspNetVersionPatchSeparator)))</AspNetSimpleVersion>
2018-07-10 01:05:56 +00:00
<!-- dotnet-runtime package may not currently be available -->
<InstallAspNetCoreSharedFxArgs>--ignore-depends=dotnet-runtime-$(AspNetSimpleVersion)</InstallAspNetCoreSharedFxArgs>
</PropertyGroup>
</Target>
2016-08-28 00:49:21 +00:00
<Target Name="BuildSdkDeb"
Condition=" '$(IsDebianBaseDistro)' == 'True' AND '$(DebuildPresent)' == 'true' "
2016-08-27 22:57:14 +00:00
DependsOnTargets="PrepareDotnetDebDirectories;
PrepareDotnetDebTool;
GetAspNetSharedFxInstallArgs;"
Inputs="@(CLISdkFiles);@(TemplatesFiles)"
2018-11-06 22:29:00 +00:00
Outputs="$(SdkDebInstallerFile)" >
2016-08-28 00:49:21 +00:00
<!-- Install Shared Framework Packages -->
<Exec Command="sudo dpkg -i $(DownloadedNetCoreAppHostPackInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedNetCoreAppTargetingPackInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedNetStandardTargetingPackInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedAspNetTargetingPackInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedRuntimeDepsInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedSharedHostInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedHostFxrInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedSharedFrameworkInstallerFile)" />
<Exec Command="sudo dpkg $(InstallAspNetCoreSharedFxArgs) -i $(DownloadedAspNetCoreSharedFxInstallerFile)" />
2016-08-18 17:11:20 +00:00
2016-08-28 00:49:21 +00:00
<!-- Create layout: Binaries -->
2016-08-19 21:52:06 +00:00
<Copy
2016-08-28 00:49:21 +00:00
DestinationFiles="@(CLISdkFiles->'$(LayoutPackageRootDir)/sdk/%(RecursiveDir)%(Filename)%(Extension)')"
SourceFiles="@(CLISdkFiles)"
2016-08-19 21:52:06 +00:00
OverwriteReadOnlyFiles="True"
SkipUnchangedFiles="False"
2016-08-28 00:49:21 +00:00
UseHardlinksIfPossible="False" />
<!-- Create layout: Templates -->
<Copy
DestinationFiles="@(TemplatesFiles->'$(LayoutPackageRootDir)/templates/%(RecursiveDir)%(Filename)%(Extension)')"
SourceFiles="@(TemplatesFiles)"
OverwriteReadOnlyFiles="True"
SkipUnchangedFiles="False"
UseHardlinksIfPossible="False" />
2016-08-28 00:49:21 +00:00
<!-- Create layout: Man Pages -->
2016-08-19 21:52:06 +00:00
<Copy
DestinationFiles="@(SdkDebManPageFiles->'$(LayoutDocsDir)/%(RecursiveDir)%(Filename)-$(Version)%(Extension)')"
2016-08-19 21:52:06 +00:00
SourceFiles="@(SdkDebManPageFiles)"
OverwriteReadOnlyFiles="True"
SkipUnchangedFiles="False"
2016-08-28 00:49:21 +00:00
UseHardlinksIfPossible="False" />
2016-08-19 21:52:06 +00:00
<!-- Create layout: Generate and Place postinst -->
<ReplaceFileContents
InputFiles="$(DebianPostinstTemplateFile)"
DestinationFiles="$(DebianPostinstFile)"
ReplacementItems="@(DebianPostInstTokenValues)" />
<Chmod
Glob="$(DebianPostinstFile)"
Mode="ugo+x" />
2016-08-28 00:49:21 +00:00
<!-- Create layout: Generate and Place debian_config.json -->
2016-08-27 22:57:14 +00:00
<ReplaceFileContents
InputFiles="$(DebianConfigTemplateFile)"
DestinationFiles="$(DebianConfigJsonFile)"
ReplacementItems="@(DebianConfigTokenValues)" />
2016-08-27 22:57:14 +00:00
2016-08-28 00:49:21 +00:00
<!-- Build SDK Deb package -->
<DotNetDebTool ToolPath="$([System.IO.Path]::GetDirectoryName($(DotNetTool)))"
2016-08-28 00:49:21 +00:00
InputDirectory="$(LayoutDirectory)"
OutputDirectory="$(DotNetDebToolOutputDirectory)"
2016-08-19 21:52:06 +00:00
PackageName="$(SdkDebianPackageName)"
PackageVersion="$(Version)"
2016-08-19 21:52:06 +00:00
WorkingDirectory="$(DotnetDebToolDir)" />
2020-03-18 05:40:09 +00:00
<!-- Copy SDK package to output
dbgsym packages is Debian Debug Symbol Packages https://wiki.ubuntu.com/Debug%20Symbol%20Packages,
we don't use them.
-->
2016-08-27 22:57:14 +00:00
<ItemGroup>
2020-03-18 05:40:09 +00:00
<GeneratedDebFiles Include="$(DotNetDebToolOutputDirectory)/*.deb" Exclude="$(DotNetDebToolOutputDirectory)/*dbgsym*.deb" />
2016-08-27 22:57:14 +00:00
</ItemGroup>
2016-08-27 22:57:14 +00:00
<Error Text="@(GeneratedDebFiles->Count()) .deb files generated." Condition="'@(GeneratedDebFiles->Count())' != 1" />
<Copy
2018-11-06 22:29:00 +00:00
DestinationFiles="$(SdkDebInstallerFile)"
2016-08-27 22:57:14 +00:00
SourceFiles="@(GeneratedDebFiles)"
OverwriteReadOnlyFiles="True"
SkipUnchangedFiles="False"
UseHardlinksIfPossible="False" />
2016-08-18 17:11:20 +00:00
<!-- Proactively remove all possible Shared Framework and Debian Packages -->
<ItemGroup>
<SetupDebPackageToRemove Include="$(SdkDebianPackageName)" />
<SetupDebPackageToRemove Include="$(AspNetCoreSharedFxDebianPackageName)" />
<SetupDebPackageToRemove Include="$(AspNetCoreSharedFxDebianPackageFileName)" />
<SetupDebPackageToRemove Include="$(SharedFxDebianPackageName)" />
<SetupDebPackageToRemove Include="$(SharedFxDebianPackageFileName)" />
<SetupDebPackageToRemove Include="$(HostFxrDebianPackageName)" />
<SetupDebPackageToRemove Include="$(HostFxrDebianPackageFileName)" />
<SetupDebPackageToRemove Include="$(SharedHostDebianPackageName)" />
<SetupDebPackageToRemove Include="$(AspNetTargetingPackDebianPackageName)" />
<SetupDebPackageToRemove Include="$(AspNetTargetingPackDebianPackageFileName)" />
<SetupDebPackageToRemove Include="$(NetStandardTargetingPackDebianPackageName)" />
<SetupDebPackageToRemove Include="$(NetStandardTargetingPackDebianPackageFileName)" />
<SetupDebPackageToRemove Include="$(NetCoreAppTargetingPackDebianPackageName)" />
<SetupDebPackageToRemove Include="$(NetCoreAppTargetingPackDebianPackageFileName)" />
<SetupDebPackageToRemove Include="$(NetCoreAppHostPackDebianPackageFileName)" />
<SetupDebPackageToRemove Include="$(RuntimeDepsPackageName)" />
</ItemGroup>
<!-- The following line is needed. So it won't warning dotnet folder is not empty after uninstall -->
<Exec Command="sudo rm -rf /usr/share/dotnet/sdk/NuGetFallbackFolder" />
<Exec Command="!(dpkg-query -W %(SetupDebPackageToRemove.Identity)) || sudo dpkg -r %(SetupDebPackageToRemove.Identity)" />
2016-08-18 17:11:20 +00:00
</Target>
<Target Name="TestSdkDeb"
Condition=" '$(CLIBUILD_SKIP_TESTS)' != 'true' and '$(IsDebianBaseDistro)' == 'True' and '$(DebuildPresent)' == 'true' "
DependsOnTargets="GetAspNetSharedFxInstallArgs"
Inputs="$(DownloadedRuntimeDepsInstallerFile);
$(DownloadedNetCoreAppHostPackInstallerFile);
$(DownloadedNetCoreAppTargetingPackInstallerFile);
$(DownloadedNetStandardTargetingPackInstallerFile);
$(DownloadedAspNetTargetingPackInstallerFile);
$(DownloadedSharedHostInstallerFile);
2016-08-18 17:11:20 +00:00
$(DownloadedHostFxrInstallerFile);
$(DownloadedSharedFrameworkInstallerFile);
$(DownloadedAspNetCoreSharedFxInstallerFile);
$(SdkDebInstallerFile);
$(DebianTestResultsXmlFile);"
2016-08-18 17:11:20 +00:00
Outputs="$(DebianTestResultsXmlFile)" >
2016-08-28 00:49:21 +00:00
<!-- Install Dependencies and SDK Packages -->
<Exec Command="sudo dpkg -i $(DownloadedRuntimeDepsInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedNetCoreAppHostPackInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedNetCoreAppTargetingPackInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedNetStandardTargetingPackInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedAspNetTargetingPackInstallerFile)" />
2017-01-25 19:43:07 +00:00
<Exec Command="sudo dpkg -i $(DownloadedSharedHostInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedHostFxrInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedSharedFrameworkInstallerFile)" />
<Exec Command="sudo dpkg $(InstallAspNetCoreSharedFxArgs) -i $(DownloadedAspNetCoreSharedFxInstallerFile)" />
2017-01-25 19:43:07 +00:00
2018-11-06 22:29:00 +00:00
<Exec Command="sudo dpkg -i $(SdkDebInstallerFile)" />
2016-08-18 17:11:20 +00:00
<!-- Run End-2-end Tests https://github.com/dotnet/core-sdk/issues/1174
<DotNetRestore ProjectPath="$(EndToEndTestProject)"
ToolPath="$(DebianInstalledDirectory)" />
<DotNetTest ProjectPath="$(EndToEndTestProject)"
2016-08-18 17:11:20 +00:00
EnvironmentVariables="@(TestSdkDebTaskEnvironmentVariables)"
ToolPath="$(DebianInstalledDirectory)" />-->
2016-08-28 00:49:21 +00:00
<!-- Clean up Packages -->
2018-08-15 21:13:07 +00:00
<!-- The following line is needed. So it won't warning dotnet folder is not empty after uninstall -->
<Exec Command="sudo rm -rf /usr/share/dotnet/sdk/NuGetFallbackFolder" />
<ItemGroup>
<TestSdkDebPackageToRemove Include="$(SdkDebianPackageName)" />
<TestSdkDebPackageToRemove Include="$(AspNetCoreSharedFxDebianPackageName)" />
<TestSdkDebPackageToRemove Include="$(SharedFxDebianPackageName)" />
<TestSdkDebPackageToRemove Include="$(HostFxrDebianPackageName)" />
<TestSdkDebPackageToRemove Include="$(SharedHostDebianPackageName)" />
<TestSdkDebPackageToRemove Include="$(AspNetTargetingPackDebianPackageName)" />
<TestSdkDebPackageToRemove Include="$(NetStandardTargetingPackDebianPackageName)" />
<TestSdkDebPackageToRemove Include="$(NetCoreAppTargetingPackDebianPackageName)" />
<TestSdkDebPackageToRemove Include="$(NetCoreAppHostPackDebianPackageName)" />
<TestSdkDebPackageToRemove Include="$(RuntimeDepsPackageName)"/>
</ItemGroup>
<!-- If package installed remove it -->
<Exec Command="!(dpkg-query -W %(TestSdkDebPackageToRemove.Identity)) || sudo dpkg -r %(TestSdkDebPackageToRemove.Identity)" />
2016-08-18 17:11:20 +00:00
</Target>
2018-11-02 06:15:59 +00:00
<Target Name="PrepareDotnetDebDirectories" DependsOnTargets="SetupDebProps">
2016-08-19 21:52:06 +00:00
<!-- Clean the workspace -->
<ItemGroup>
2016-08-28 00:49:21 +00:00
<FilesToClean Remove="*" />
2018-11-06 22:29:00 +00:00
<FilesToClean Include="$(SdkDebInstallerFile)" />
2016-08-28 00:49:21 +00:00
<WorkspaceDirectories Remove="*" />
<WorkspaceDirectories Include="$(SdkDebianIntermediateDirectory);
$(LayoutDirectory)" />
<LayoutSubDirectories Remove="*" />
<LayoutSubDirectories Include="$(LayoutPackageRootDir);
$(LayoutAbsolutePlacementDir);
$(LayoutSamplesDir);
$(LayoutDocsDir);
$(LayoutDebianFilesDir)" />
2016-08-19 21:52:06 +00:00
</ItemGroup>
2016-08-28 00:49:21 +00:00
<Delete Files="@(FilesToClean)" />
<RemoveDir Directories="@(WorkspaceDirectories)" />
<!-- Rebuild the workspace -->
<MakeDir Directories="@(WorkspaceDirectories)" />
<MakeDir Directories="@(LayoutSubDirectories)" />
<MakeDir Directories="$(DotNetDebToolOutputDirectory)" />
2016-08-19 21:52:06 +00:00
</Target>
2016-08-18 17:11:20 +00:00
<Target Name="PrepareDotnetDebTool">
2016-08-18 17:11:20 +00:00
2018-11-02 06:15:59 +00:00
<!--<DotNetRestore ToolPath="$(PreviousStageDirectory)"
WorkingDirectory="$(DotnetDebToolDir)" />-->
2016-08-18 17:11:20 +00:00
</Target>
2016-08-27 22:57:14 +00:00
<Target Name="TestDebuild">
2016-08-29 18:18:34 +00:00
<Message Text="Don't remove this" />
<!-- run Debuild -->
<!-- NB: IgnoreExitCode prevents Exec from failing, but does not prevent us from retrieving the exit code. -->
<Exec Command="/usr/bin/env debuild -h > /dev/null 2>&amp;1" IgnoreExitCode="true">
2016-08-25 22:53:15 +00:00
<Output TaskParameter="ExitCode" PropertyName="DebuildExitCode" />
</Exec>
2016-08-28 00:49:21 +00:00
<!-- Check if it returned 0 -->
2016-08-25 22:53:15 +00:00
<PropertyGroup>
<DebuildPresent>false</DebuildPresent>
<DebuildPresent Condition=" '$(DebuildExitCode)' == '0' ">true</DebuildPresent>
</PropertyGroup>
<!-- Workaround for Ubuntu16 Jenkins https://github.com/dotnet/core-setup/issues/167 -->
<Message Condition=" '$(DebuildPresent)' != 'true' "
Text="Debuild Not found, Debian packages will not be built."
Importance="High" />
</Target>
2016-06-28 01:26:57 +00:00
</Project>