Skip to content

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

Open
Muhammad Falak R Wani (mfrw) wants to merge 2 commits into
microsoft:masterfrom
mfrw:mfrw/azurelinux4
Open

Add AzureLinux official WSL image to the distribution manifest#41120
Muhammad Falak R Wani (mfrw) wants to merge 2 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 falakreyaz@gmail.com

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 Outdated
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 on lines +254 to +256
"Name": "AzureLinux-4.0-BETA",
"FriendlyName": "Azure Linux 4.0 (BETA)",
"Default": true,
@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)
  • getty@tty1.service 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

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 (2)

distributions/DistributionInfo.json:263

  • The AzureLinux ModernDistributions URLs point at osrelease.download.prss.microsoft.com/pr/download/.... The /pr/ path suggests this may be a preview/ephemeral artifact location; if it gets garbage-collected, wsl --install --from-file / modern distro install flows could break. Prefer a stable, publicly supported release URL (or an aka.ms redirect) intended for long-term consumption, and keep this manifest pointing at that stable endpoint.
                "Amd64Url": {
                    "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"

distributions/DistributionInfo.json:256

  • The PR title says this adds an "official" AzureLinux WSL image, but the entry’s FriendlyName is labeled "(BETA)". This is a user-visible string and reads like a prerelease; please align either the PR description/title or the manifest entry so they communicate the same status (official release vs beta/preview).
                "Name": "AzureLinux-4.0",
                "FriendlyName": "Azure Linux 4.0 (BETA)",
                "Default": true,

@benhillis

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

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

@benhillis Ben Hillis (benhillis) 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.

You've changed all the line endings on this file. Please don't do that.

@mfrw

Copy link
Copy Markdown
Member Author

You've changed all the line endings on this file. Please don't do that.

Apologies :( - will fix it

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.

Have a Draft PR in AzureLinux to address the feedback:

Signed-off-by: Muhammad Falak R Wani <falakreyaz@gmail.com>

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.

Copilot AI review requested due to automatic review settings July 27, 2026 04:23

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 new AzureLinux entry points to https://osrelease.download.prss.microsoft.com/pr/download/..., which looks like a PR/staging download path. This manifest is consumed by distributions/validate-modern.py (it downloads each Amd64Url/Arm64Url and verifies the SHA), so if this URL is ephemeral or requires auth it will break CI validation and end-user installs once it expires.

Please switch to a stable, publicly accessible release URL (and update the corresponding Sha256 values) before landing this in the official manifest.

                    "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"

Signed-off-by: Muhammad Falak R Wani <falakreyaz@gmail.com>

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 PR title/description says this adds an official Azure Linux WSL image, but the manifest entry is explicitly marked "(BETA)" and points at a ...prss.microsoft.com/pr/download/... URL (looks like a PR/pre-release download endpoint). If this endpoint is transient or access-restricted, consumers/CI validation may start failing and users may not be able to download the distro long-term. Please switch these URLs to a stable, publicly supported release location (and if the image is truly official, consider dropping the BETA labeling; if it’s intentionally beta, update the PR title/issue scope accordingly).
                "Name": "AzureLinux-4.0-BETA",
                "FriendlyName": "Azure Linux 4.0 (BETA)",
                "Default": true,
                "Amd64Url": {
                    "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"

@jeremycline

Copy link
Copy Markdown
Member

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)

For these three, I think they can all be addressed by passing non-default values to the post-install script in the specfile. Azure Linux will need to carry a minor patch to the specfile to switch out the defaults, but that's also what RHEL and others are doing, as far as I am aware.

  1. 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)
  • getty@tty1.service 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

These I should mask out in Fedora as well, it sounds like (except systemd-networkd which Fedora doesn't use). My understanding is that Azure Linux rolls their own -release package so I'm not sure how much we can share there beyond being consistent.

@mfrw

Copy link
Copy Markdown
Member Author

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)

For these three, I think they can all be addressed by passing non-default values to the post-install script in the specfile. Azure Linux will need to carry a minor patch to the specfile to switch out the defaults, but that's also what RHEL and others are doing, as far as I am aware.

  1. 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)
  • getty@tty1.service 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

These I should mask out in Fedora as well, it sounds like (except systemd-networkd which Fedora doesn't use). My understanding is that Azure Linux rolls their own -release package so I'm not sure how much we can share there beyond being consistent.

Ack - let me work this for both AzureLinux and Fedora Both.
Thanks Jeremy Cline (@jeremycline) for the feedback.

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.

8 participants