On 1/28/25 9:50 AM, Alexander Epaneshnikov wrote:
On Tue, Jan 28, 2025 at 12:59:05AM +0100, Robin Candau wrote:
Hi everyone,

Hello Robin and others.

I support this idea. And if you need any help, then I am ready to spend my time 
on WSL


Hey Alexander,

Alright! Thanks for sharing interest :)


I'm writing this mail to collect thoughts and interests about providing an
official Arch Linux image for WSL (Windows Subsystem for Linux) [1].

Indeed, after a quick related discussion over on IRC, I started tinkering
with this and I personally would be eventually interested in proposing this
"officially", if that's of interest.

This proposal is inspired by the related Fedora one [2] (which was accepted
and planned for Fedora 42).

# Benefits

An official Arch Linux image for WSL would provide an easy way for people to
give Arch Linux a try directly from their Windows system, making our distro
more "discoverable" and accessible.

Additionally, some people may have no other choice but to use Windows in
specific situations (despite not necessarily being the best choice for their
needs / duties), e.g. on their company's workstation (like it's the case for
me). While WSL consists of an acceptable solution to get access to a Linux
environment in such situations, the lack of an official image for Arch Linux
either "suggests" the use of a different distribution or "forces" people to
rely on unofficial Arch Linux WSL images (which quality may vary).

# Distribution / Installation

WSL images can be distributed via tarballs, Appx packages, or via the
Windows Store.

 From what we know, distributing images from the Windows Store implies
agreeing to the store policies & developer agreement, and may imply
additional eventual concerns related to TOS/EULA. I unfortunately don't have
much details on that front currently but I think that distribution from the
Windows Store should be out of scope for now.

Moreover, since version 2.4.4, WSL greatly improved the way to install
tarballs outside from the store by adding "click-to-install" support for
tarballs using the ".wsl" extension, as well as automatic first setup script
support. As such, I would personally advice for that distribution method for
the time being. Indeed, downloading such an Arch Linux ".wsl" tarball and
(double) clicking on it would be all that's needed to be able to use Arch
Linux with WSL.
Note that WSL 2.4.4 and greater are still qualified as pre-releases at the
time I'm writing those lines [3], but can still be installed with a single
command line from a PowerShell prompt (`wsl --update --pre-release` from a
system with WSL2 installed).

If anything, installing such tarballs from WSL prior to 2.4.4 can still be
done "manually" via a single command line (`wsl --import <DistroName>
<InstallationPath> <TarballPath>`). With a proper documentation, using Arch
Linux with WSL prior to 2.4.4 would still be pretty straightforward.

# Technical details

WSL2 provides a single virtual machine managed by the Windows host which
runs guest Linux distributions as containers. As such, the Arch Linux base
container image [4] can already be used for basic WSL support.

To define some default parameters and provide additional functionalities,
some specific WSL configuration files can be added to it. This, for
instance, allows to add `systemd` support out of the box [5], define default
parameters (e.g. default user, icon for the app shortcut or terminal
profile) and automatic first setup script (which can be used to create a
default non-root user and perform basic system setup interactively at first
run for instance) [6].

The archive just needs to be renamed from ".tar.zst" to ".wsl" to allow
"click-to-install" with WSL >= 2.4.4.

For those interested, I actually "built" such a ".wsl" Arch Linux tarball
[7] based on our latest base container image which can be installed & uses
with WSL2 (made for test purposes). Make sure to read the README [8], which
contains important information such as how the tarball was generated and how
to use it.

# Tarball maintenance / management

Given that the WSL tarball would be based on our Docker / Container image,
it could eventually be maintained in the same repo [4], although I'm not
sure that mixing a WSL specific image with our "Docker" images is desirable.

We also have the arch-boxes repo [9] which provides multiple kind of Arch
images (vagrant, qcow2, cloud...). I think a WSL image could fit well there.

Alternatively, a new dedicated repo could be created.

When it comes to actual maintenance / management, I think the image
generation and releasing should be fairly easy to automate via a scheduled
GitLab CI (as it is currently done for our Docker images for instance). The
process is fairly straightforward (grab latest base Docker image / tarball,
un-archive it, add a few WSL specific files, re-archive it, rename it from
".tar.zst" to ".wsl"). I guess a monthly generation / release would be more
than enough. We would still need a few people to watch over and feel
responsible to maintain this. I'd happily be one of them, but please feel
free to express interest :)

# Unresolved questions / issues

 From a purely technical stand point, there is one pending issue which,
fortunately, can be easily worked around. But the actual root cause and
proper fix are unknown yet. See the last section of the README [8] for more
details.

On another level, I guess the important point here is to determine if we
actually want this and, if so, how? For instance, which level of support do
we want to provide (if we are to do this)? Since it would be pretty close in
terms of "design" and usage, I personally think we could provide a similar
level of support than the Docker images & Arch boxes images.

Anyway, sorry for the long read 0:)
Just to clarify, the actual purpose of this mail is to collect thoughts,
concerns, questions, interests (both regarding using such an "official" Arch
Linux WSL image and / or helping maintaining it), ...
Please, share opinions if you have some :)

[1] https://learn.microsoft.com/en-us/windows/wsl/about
[2] https://fedoraproject.org/wiki/Changes/FedoraWSL
[3] https://github.com/microsoft/WSL/releases
[4] https://gitlab.archlinux.org/archlinux/archlinux-docker
[5] 
https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/#set-the-systemd-flag-set-in-your-wsl-distro-settings
[6] 
https://learn.microsoft.com/en-uisns/windows/wsl/build-custom-distro#add-the-wsl-distribution-configuration-file
[7] https://pkgbuild.com/~antiz/WSL/
[8] https://pkgbuild.com/~antiz/WSL/README.md
[9] https://gitlab.archlinux.org/archlinux/arch-boxes

--
Regards,
Robin Candau / Antiz







--
Sincerely, Alexander | Package Maintainer


--
Regards,
Robin Candau / Antiz

Attachment: OpenPGP_0xFDC3040B92ACA748.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to