Skip to content

Add Azure Linux 4 RPM support - #28021

Merged
Justin Chung (jshigetomi) merged 5 commits into
PowerShell:masterfrom
jshigetomi:jshigetomi-azure-linux-4-release
Sep 18, 2026
Merged

Justin Chung (jshigetomi) merged 5 commits into
PowerShell:masterfrom
jshigetomi:jshigetomi-azure-linux-4-release

Conversation

@jshigetomi

@jshigetomi Justin Chung (jshigetomi) commented Sep 16, 2026 •

Copy link
Copy Markdown
Collaborator

PR Summary

  • Align .cm RPM dependencies with the current .NET 11 Azure Linux 3/4 runtime-deps contract.
  • Add stable PowerShell mappings for the Azure Linux 4 beta Microsoft repositories on x64 and ARM64, using distribution: azl.
  • Keep preview packages outside the Azure Linux 4 PMC mapping.
  • Move the independently discovered telemetry mutex defect and regression test to Fix telemetry UUID mutex acquisition #28026.

Dependency contract

The dependency list now follows an immutable .NET 11 Azure Linux 4 runtime-deps source. Azure Linux 3 and 4 use the same base contract:

  • ca-certificates
  • glibc
  • icu
  • libgcc
  • libstdc++
  • openssl-libs
  • tzdata
  • dotnet-runtime-11.0 for framework-dependent RPMs

Neither .NET 11 runtime-deps list requires krb5 or krb5-libs, so neither is imposed on every PowerShell installation. The obsolete zlib and dotnet-runtime-10.0 requirements are also removed.

PMC mapping

The stable mappings target:

  • azurelinux-4.0-beta-microsoft-x86_64
  • azurelinux-4.0-beta-microsoft-aarch64

The existing PMC release script remains mapping-driven and appends -yum; no release-script change is needed. This PR does not publish or otherwise modify PMC state.

Validation

Official preview artifacts were produced from GitHub/ADO-mirrored release/v7.7.99-preview.94 at exact SHA 9e1bf1694d95a1e684b20039720ba438a2e94606:

  • Coordinated binaries: 719739 / bins-v7.7.99-preview.94-prod-719739
  • Signed packages: 719755 / pkgs-v7.7.99-preview.94-prod-719755
  • Isolated Azure Linux 4 validation: 719777 / ReleaseAutomationTest-719777-ps

Run 719777 executed only Download, AzureLinux40, and AzureLinuxCmRpmCompatibility; ordinary Windows, Linux, macOS, LTS, and Azure Linux 3 stages were skipped. Native x64 and ARM64 validation passed:

  • Exact signed RPM SHA256, size, NEVRA, and full signing fingerprint 2bc94fff7015a5f28f1537ad0cd9fed33135ce90
  • Exact required and forbidden dependency checks
  • DNF5 install, uninstall, metadata clean/reinstall, ownership, startup, module read, and native architecture checks
  • .NET 11.0.0-rc.2.26452.102 runtime on Azure Linux 4.0 Container Image Beta
  • Elevated suites: 149 discovered, 121 executed, 112 passed, 0 failed, and 9 inconclusive per architecture
  • Unelevated suites: 15,447 discovered, 13,194 executed, 12,979 passed, 0 failed, and 215 inconclusive per architecture
  • Supported lifecycle failures: 0; supported runtime failures: 0

The run also proved the separate #28026 telemetry fix on both architectures: the formerly blocked concurrent empty-cache child completed in 3 seconds within the 20-second gate while its telemetry-enabled holder remained alive.

This does not claim Azure Linux 4 support for PowerShell 7.6: .NET 10 does not list Azure Linux 4 as supported, and no 7.6 backport is requested.

PR Checklist

  • PR has a meaningful title
  • Summarized changes and validation evidence
  • No new copyright headers are required
  • This PR remains a draft pending maintainer review and release-owner approval
  • No breaking changes
  • No documentation change is required
  • Native x64 and ARM64 release validation completed

Justin Chung and others added 2 commits September 16, 2026 18:07
Copilot AI lite review requested due to automatic review settings September 16, 2026 23:09
@jshigetomi
Justin Chung (jshigetomi) requested a review from a team as a code owner September 16, 2026 23:09
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No unresolved review issues remain.

Pull request overview

Adds Azure Linux 4 RPM support using portable dependencies and stable x64/ARM64 repository mappings.

Changes:

  • Updates CBL-Mariner dependencies to krb5-libs.
  • Adds stable Azure Linux 4 repository mappings.
  • Excludes Azure Linux 4 from preview mappings.
File summaries
File Summary
tools/packaging/packaging.psm1 Updates CBL-Mariner RPM dependencies.
tools/packages.microsoft.com/mapping.json Adds stable Azure Linux 4 repository mappings.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@anamnavi Anam Navied (anamnavi) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, please change the distribution value. Technically it should've been changed when adding the Azl3 entries, but we can address that in a separate PR. Bionic would be the distribution for Ubuntu 18.04

Comment thread tools/packages.microsoft.com/mapping.json Outdated
Comment thread tools/packages.microsoft.com/mapping.json Outdated
@microsoft-github-policy-service microsoft-github-policy-service Bot added the Waiting on Author The PR was reviewed and requires changes or comments from the author before being accept label Sep 17, 2026
@microsoft-github-policy-service microsoft-github-policy-service Bot removed the Waiting on Author The PR was reviewed and requires changes or comments from the author before being accept label Sep 17, 2026
Comment thread tools/packaging/packaging.psm1 Outdated
@daxian-dbw

Dongbo Wang (daxian-dbw) commented Sep 17, 2026 •

Copy link
Copy Markdown
Member

Also, only .NET 11 supports Azure Linux 4.0, so I don't think this change should be backported to 7.6 then.
.NET 10 only supports Azure Linux 3.0: https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md#linux

GitHub
.NET news, announcements, release notes, and more! - dotnet/core

Justin Chung and others added 3 commits September 17, 2026 18:18
Avoid recursively acquiring the named mutex so a telemetry-enabled process does not block subsequent shells when the UUID cache is missing. Add a bounded concurrent-process regression test.

Co-authored-by: Copilot App <[email protected]>
Use the Azure Linux 4 runtime dependency contract, require the .NET 11 runtime only for framework-dependent packages, and correct the Azure Linux 4 PMC distribution metadata.

Co-authored-by: Copilot App <[email protected]>
The telemetry mutex change is moving to an independent PR so this draft remains scoped to RPM dependencies and PMC routing.

Co-authored-by: Copilot App <[email protected]>
@jshigetomi
Justin Chung (jshigetomi) marked this pull request as ready for review September 18, 2026 16:38
@jshigetomi
Justin Chung (jshigetomi) merged commit 93eadd1 into PowerShell:master Sep 18, 2026
40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Backport-7.6.x-Done CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants