Skip to content

Add AzureLinux official WSL image to the distribution manifest - #41120

Merged
Craig Loewen (craigloewen-msft) merged 4 commits into
microsoft:masterfrom
mfrw:mfrw/azurelinux4
Nov 9, 2026
Merged

Craig Loewen (craigloewen-msft) merged 4 commits into
microsoft:masterfrom
mfrw:mfrw/azurelinux4

Conversation

@mfrw

@mfrw Muhammad Falak R Wani (mfrw) commented Jul 20, 2026 •

Copy link
Copy Markdown
Member

Signed-off-by: Muhammad Falak R Wani [email protected]

Summary of the Pull Request

PR Checklist

  • Closes: Add Support For AzureLinux 4.0 #41182
  • Communication: We've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
  • Tests: Added/updated if needed and all pass
  • Localization: All end user facing strings can be localized
  • Dev docs: Added/updated if needed
  • Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

Copilot AI review requested due to automatic review settings July 20, 2026 15:50
@mfrw
Muhammad Falak R Wani (mfrw) requested a review from a team as a code owner July 20, 2026 15:50
@azure-pipelines

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

@benhillis

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

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.

Pull request overview

This PR updates the WSL distribution manifest to add AzureLinux as a modern distribution option, including architecture-specific download locations and SHA256 hashes.

Changes:

  • Added a new ModernDistributions.AzureLinux entry with an AzureLinux-4.0-BETA image.
  • Provided amd64/arm64 .wsl download URLs and corresponding SHA256 hashes.

Comment thread distributions/DistributionInfo.json Resolved
Comment thread distributions/DistributionInfo.json Outdated
Comment on lines +258 to +263
"Url": "https://osrelease.download.prss.microsoft.com/pr/download/AzureLinux-4.0-x86_64.wsl",
"Sha256": "92e709a8f7e9e5981d839c74358449857dcdfae57636a6b5e30001898790d992"
},
"Arm64Url": {
"Url": "https://osrelease.download.prss.microsoft.com/pr/download/AzureLinux-4.0-aarch64.wsl",
"Sha256": "6ac4a5cdfa8d3c1308cb6cca133c0f30a47ae2cb639ee4cde0ada2d3a65298ce"
@benhillis

Copy link
Copy Markdown
Member

Muhammad Falak R Wani (@mfrw) - there are some issues that should be resolved before merging, can you please take a look?

Copilot AI review requested due to automatic review settings July 20, 2026 17:58
@mfrw

Copy link
Copy Markdown
Member Author

Muhammad Falak R Wani (@mfrw) - there are some issues that should be resolved before merging, can you please take a look?

Sure - will do

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.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

distributions/DistributionInfo.json:263

  • The download URLs point to osrelease.download.prss.microsoft.com/pr/download/..., which appears to be a PR-specific or internal distribution endpoint (and is the only prss.microsoft.com reference in this manifest). For an official distro entry, this should likely use a stable, long-lived public URL (similar to the other ModernDistributions entries) to avoid future breakage if PR artifacts are rotated/removed.
                    "Url": "https://osrelease.download.prss.microsoft.com/pr/download/AzureLinux-4.0-x86_64.wsl",
                    "Sha256": "92e709a8f7e9e5981d839c74358449857dcdfae57636a6b5e30001898790d992"
                },
                "Arm64Url": {
                    "Url": "https://osrelease.download.prss.microsoft.com/pr/download/AzureLinux-4.0-aarch64.wsl",
                    "Sha256": "6ac4a5cdfa8d3c1308cb6cca133c0f30a47ae2cb639ee4cde0ada2d3a65298ce"

Comment thread distributions/DistributionInfo.json Resolved
@benhillis

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@mfrw

Muhammad Falak R Wani (mfrw) commented Jul 21, 2026 •

Copy link
Copy Markdown
Member Author

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.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

distributions/DistributionInfo.json:256

  • The PR title says this adds an "official" Azure Linux WSL image, but the manifest entry is explicitly marked as BETA (Name ends with "-BETA" and FriendlyName includes "(BETA)"). This is a user-visible mismatch: either the entry should be the stable/official image (no BETA labeling), or the PR title/intent should be updated to reflect that this is a beta image.
                "Name": "AzureLinux-4.0-BETA",
                "FriendlyName": "Azure Linux 4.0 (BETA)",
                "Default": true,

@craigloewen-msft

Copy link
Copy Markdown
Member

Muhammad Falak R Wani (@mfrw)
Right now you call this distro "AzureLinux-4.0-BETA" which I would advise against. You should use one stable and consistent name for your distribution.

What happens when this package comes out of BETA? It will be seen as an entirely new WSL distribution, which really isn't the case. I'd recommend using a name like AzureLinux-4.0 or something to that effect

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.

Should resolve naming first.

@OneBlue Blue (OneBlue) left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thank you for doing this !

Looking through the tar, there are a couple things that we should fix before merging:

  1. The icon referenced by /etc/wsl-distribution.conf doesn't exist:
[shortcut]
enabled = true
icon = /usr/share/pixmaps/fedora-logo.ico # <= Not in the tar
  1. The OOBE script references Fedora (I'm guessing because it's inspired from their OOBE script)

  2. The manifest name doesn't match the distribution name in /etc/wsl-distribution.conf (AzureLinux-4 vs AzureLinux-4.0-BETA)

  3. Some redundant system units are enabled by default.

Specifically:

  • systemd-vconsole-setup.service (WSL automatically configures a TTY on that device, and this will typically fail if multiple distros try to do this in parallel)
  • systemd-resolved.service (WSL owns the DNS and writes to /etc/resolv.conf)
  • systemd-networkd-* (WSL configures networking, distributions shouldn't need to make changes to adapter configuration)
  • [email protected] This tty is essentially unreachable so I'd recommend not running it at all. This will also fail if another distro tries to do this as well

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.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

distributions/DistributionInfo.json:263

  • The AzureLinux ModernDistributions URLs point at a .../pr/download/... endpoint, which looks like a pull-request/staging artifact location and may not be stable long-term. If this URL disappears or is rotated, wsl --install / distro list fetching will break for this entry. Please switch these to a long-lived, versioned release location intended for public consumption (similar to the other distro entries).
                    "Url": "https://osrelease.download.prss.microsoft.com/pr/download/AzureLinux-4.0-x86_64.wsl",
                    "Sha256": "a7b3f2ff714105dcb22a45c9b8072b66df7a71b0b6dcd97455b1fb60ca176056"
                },
                "Arm64Url": {
                    "Url": "https://osrelease.download.prss.microsoft.com/pr/download/AzureLinux-4.0-aarch64.wsl",
                    "Sha256": "f5a36b4185977cef3d62db44acb566da039d81db3bae04f6241364189a754d6c"

@mfrw

Copy link
Copy Markdown
Member Author

Ack Craig Loewen (@craigloewen-msft) & Blue (@OneBlue) - will address the feedback

@jperrin

Copy link
Copy Markdown

Craig Loewen (@craigloewen-msft) my reasoning for asking Muhammad Falak R Wani (@mfrw) to explicitly name the image as a Beta is because there won't be an easy way to update to the GA release once we launch. The alternative would be to hold the image back until we GA officially.

Copilot AI review requested due to automatic review settings July 24, 2026 02:54
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Comment thread distributions/validate-modern.py Outdated

return is_dev_null(target)

# Highest priority first, matching systemd's unit search path.

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.

Can I get some additional context on the substantial changes that were needed here?

@mfrw Muhammad Falak R Wani (mfrw) Nov 4, 2026 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I have added systemd dropins instead of masks as suggested by: link. Also, if it makes sense, i can probably raise a seperate PR for this and leave only the distro addition here.

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.

🟡 Changes recommended

The parser ignores condition-list resets that can suppress discouraged-unit warnings, while repeated random-access reads of compressed archives multiply validation I/O.

3 open issues

Review effort: Balanced

Comment thread distributions/validate-modern.py Outdated
if info is None or not info.isfile():
return None

return tar.extractfile(info).read().decode('utf-8', errors='replace')
@squillace

Copy link
Copy Markdown

Craig Loewen (@craigloewen-msft) pinging in my morning to see what I can do here. do NOT see this as pressure; just want to focus attention should there be a resolution just hanging around for attention. :-)

@OneBlue

Copy link
Copy Markdown
Collaborator

Ralph Squillace (@squillace): The manifest change look good, if you move the CI changes to a separate change, this should be ready to merge

@mfrw

Copy link
Copy Markdown
Member Author

Ralph Squillace (Ralph Squillace (@squillace)): The manifest change look good, if you move the CI changes to a separate change, this should be ready to merge

ack sir - PTAL whenver you get a chance.

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.

🔵 Needs a closer look

Maintainers need to confirm public-listing readiness because Azure Linux 4 remains in development and the linked issue calls for keeping it unlisted during beta, while both images, checksums, and Windows installation behavior still require validation.

3 open issues

Review effort: Balanced

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.

🔵 Needs a closer look

Azure Linux 4.0’s public-listing readiness remains unresolved, and its x64/ARM64 download artifacts, checksums, and WSL installation behavior could not be validated in this environment.

3 open issues

Review effort: Balanced

@OneBlue

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@craigloewen-msft
Craig Loewen (craigloewen-msft) merged commit 2183822 into microsoft:master Nov 9, 2026
13 checks passed
@mfrw
Muhammad Falak R Wani (mfrw) deleted the mfrw/azurelinux4 branch November 9, 2026 23:50
Muhammad Falak R Wani (mfrw) added a commit to microsoft/azurelinux that referenced this pull request Nov 10, 2026
WSL's distribution manifest lists Azure Linux 4 (microsoft/WSL#41120),
renamed to AzureLinux-4 by the WSL manifest PR this depends on, so
"wsl --install AzureLinux-4" downloads the package for the host's
architecture, checks it against the SHA-256 checksum in the manifest,
and registers it as AzureLinux-4.

Signed-off-by: Muhammad Falak R Wani <[email protected]>
reuben olinsky (reubeno) pushed a commit to microsoft/azurelinux that referenced this pull request Nov 10, 2026
WSL's distribution manifest lists Azure Linux 4 (microsoft/WSL#41120),
renamed to AzureLinux-4 by the WSL manifest PR this depends on, so
"wsl --install AzureLinux-4" downloads the package for the host's
architecture, checks it against the SHA-256 checksum in the manifest,
and registers it as AzureLinux-4.

Signed-off-by: Muhammad Falak R Wani <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants