Mirror .NET/runtime ICU version range in PowerShell Linux packaging (#26304)

This commit is contained in:
kasperk81
2025-11-17 11:56:51 -08:00
committed by GitHub
parent 6d61ef1034
commit bb44aa1bc4
+17 -2
View File
@@ -2125,6 +2125,22 @@ function Get-PackageDependencies
# These should match those in the Dockerfiles, but exclude tools like Git, which, and curl # These should match those in the Dockerfiles, but exclude tools like Git, which, and curl
$Dependencies = @() $Dependencies = @()
# ICU version range follows .NET runtime policy.
# See: https://github.com/dotnet/runtime/blob/3fe8518d51bbcaa179bbe275b2597fbe1b88bc5a/src/native/libs/System.Globalization.Native/pal_icushim.c#L235-L243
#
# Version range rationale:
# - The runtime supports ICU versions >= the version it was built against
# and <= that version + 30, to allow sufficient headroom for future releases.
# - ICU typically releases about twice per year, so +30 provides roughly
# 15 years of forward compatibility.
# - On some platforms, the minimum supported version may be lower
# than the build version and we know that older versions just works.
#
$MinICUVersion = 60 # runtime minimum supported
$BuildICUVersion = 76 # current build version
$MaxICUVersion = $BuildICUVersion + 30 # headroom
if ($Distribution -eq 'deb') { if ($Distribution -eq 'deb') {
$Dependencies = @( $Dependencies = @(
"libc6", "libc6",
@@ -2132,10 +2148,9 @@ function Get-PackageDependencies
"libgssapi-krb5-2", "libgssapi-krb5-2",
"libstdc++6", "libstdc++6",
"zlib1g", "zlib1g",
"libicu76|libicu74|libicu72|libicu71|libicu70|libicu69|libicu68|libicu67|libicu66|libicu65|libicu63|libicu60|libicu57|libicu55|libicu52", (($MaxICUVersion..$MinICUVersion).ForEach{ "libicu$_" } -join '|'),
"libssl3|libssl1.1|libssl1.0.2|libssl1.0.0" "libssl3|libssl1.1|libssl1.0.2|libssl1.0.0"
) )
} elseif ($Distribution -eq 'rh') { } elseif ($Distribution -eq 'rh') {
$Dependencies = @( $Dependencies = @(
"openssl-libs", "openssl-libs",