From Fedora Project Wiki
 
(7 intermediate revisions by 4 users not shown)
Line 27: Line 27:


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeAnnounced]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 45: Line 45:
ON_QA -> change is fully code complete
ON_QA -> change is fully code complete
-->
-->
* [<will be assigned by the Wrangler> devel thread]
* [https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org/thread/UIM2CGR7HHJAYDDNVORAWVOMCWNLTCUB/ Announced]
* [https://discussion.fedoraproject.org/t/f42-change-proposal-fedora-wsl-self-contained/138979 Discussion thread]
* FESCo issue: <will be assigned by the Wrangler>
* FESCo issue: <will be assigned by the Wrangler>
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: <will be assigned by the Wrangler>
Line 61: Line 62:
* Create a [https://pagure.io/fedora-kiwi-descriptions/ Kiwi definition] to produce a WSL root filesystem tarball.
* Create a [https://pagure.io/fedora-kiwi-descriptions/ Kiwi definition] to produce a WSL root filesystem tarball.
* Write documentation on how to use the tarball with WSL.
* Write documentation on how to use the tarball with WSL.
* Add our images to the [https://learn.microsoft.com/en-us/windows/wsl/build-custom-distro#adding-your-distribution-to-wsl---install-for-all-wsl-users WSL distribution list] so users can install it with the "wsl --install Fedora" command.
* If possible, add our images to the [https://learn.microsoft.com/en-us/windows/wsl/build-custom-distro#adding-your-distribution-to-wsl---install-for-all-wsl-users WSL distribution list] so users can install it with the "wsl --install Fedora" command.
 
Optionally, we can include a section on fedoraproject.org to ensure users can discover our WSL image.


== Feedback ==
== Feedback ==
Line 101: Line 104:
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


* Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> [[User: davdunc | David Duncan]], [[User: ngompa | Neal Gompa]], [[User: patricklang | Patrick Lang]]
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


Line 139: Line 142:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
There are two major variables to test with this change. The first is the versions of Windows, and the second is the version of WSL. The expectation is that both Windows 10 and Windows 11 should work, assuming they're up-to-date. For WSL, version 2.4.4 or greater is required for the simple installation experience. Older versions will work as well, but require some manual first-time setup.


For WSL versions 2.4.4+:
For WSL versions 2.4.4+:


# Have access to a Windows installation with WSL 2.4.4+
# Have access to a Windows installation with WSL 2.4.4+
# Run "wsl --install Fedora"
# Download the Fedora WSL tarball
# From the command line, install the tarball with "wsl --install --from-file .\path\to\Fedora.tar.xz"
# Enter the environment by running "wsl -d Fedora"
# Enter the environment by running "wsl -d Fedora"
# Use the interactive out-of-the-box experience script to set up a new user
# Use the interactive out-of-the-box experience script to set up a new user
Line 153: Line 159:
# On the Windows host, download the WSL tarball from <somewhere>
# On the Windows host, download the WSL tarball from <somewhere>
# Open up a Windows terminal and install WSL itself with "wsl --install"
# Open up a Windows terminal and install WSL itself with "wsl --install"
# Import the WSL tarball with "wsl --import Fedora C:\Users\<username>\AppData\Local\WSL\Fedora .\Path\To\Fedora.x86_64.tar.xz"
# Import the WSL tarball with "wsl --import Fedora $ENV:LOCALAPPDATA\WSL\Fedora .\Path\To\Fedora.x86_64-Rawhide.tar.xz"
# Enter the environment with "wsl -d Fedora -u root"
# Enter the environment with "wsl -d Fedora -u root"
# manually execute the interactive out-of-the-box experience script to set up a new user
# manually execute the interactive out-of-the-box experience script to set up a new user with "/usr/libexec/wsl/oobe.sh"
# exit the environment logged in as root
# Enter the environment as the newly created user with "wsl -D Fedora -u <username>"
# Install some applications, start some services, see if things fall over.
# Install some applications, start some services, see if things fall over.


Line 189: Line 197:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
Add a section somewhere in https://docs.fedoraproject.org/ (perhaps quick docs) with a short guide on installing the tarball.
 
Add a section somewhere in https://docs.fedoraproject.org/ (perhaps quick docs) with a short guide on installing the tarball. This will cover both older versions of WSL which require more manual steps as well as the newer, easier method of installation.


== Release Notes ==
== Release Notes ==

Latest revision as of 16:20, 6 December 2024


Create Fedora Windows Subsystem for Linux Images

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

Recent versions of Windows support running Linux guests via Windows Subsystem for Linux (WSL). These can be distributed via tarballs, Appx packages, or via the Windows Store. The purpose of this change is to start producing Fedora images for users of WSL.

Distributing images via the Windows Store requires agreeing to the store policies and developer agreement, which is something Fedora has historically not been comfortable with. This change proposal is to distribute a tarball. In recent versions of WSL (version 2.4.4 and greater), the user experience has been greatly improved for WSL images outside the store. These include allowing tarballs to distribute first-time setup scripts and icons as part of the distribution instead of as a Windows application, as well as click-to-install support for tarballs using the ".wsl" file extension. Therefore, this proposal will work best with version 2.4.4+ of WSL, although documentation will be provided for users on older releases.

Owner


Current status

  • Targeted release: Fedora Linux 42
  • Last updated: 2024-12-06
  • Announced
  • Discussion thread
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

Recent versions of Windows support running Linux distributions using Windows Subsystem for Linux (WSL). In the latest version, WSL 2, a single virtual machine is managed by the Windows host and guest Linux distributions run as containers within it. For basic WSL support, Fedora needs to distribute a root filesystem tarball. The Fedora base container can already be used with WSL, but it is not ideal as it intentionally excludes documentation and non-essential tools. There also isn't official documentation on how to use it with WSL.

The goal of this change is to complete the following:

Optionally, we can include a section on fedoraproject.org to ensure users can discover our WSL image.

Feedback

Benefit to Fedora

A dedicated image with documentation allows people to easily try out a Fedora environment from their Windows installations. When it comes time to install a Linux distribution on their computer, they can be more confident when choosing Fedora.

Scope

  • Proposal owners:
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Community Initiatives:

Upgrade/compatibility impact

How To Test

There are two major variables to test with this change. The first is the versions of Windows, and the second is the version of WSL. The expectation is that both Windows 10 and Windows 11 should work, assuming they're up-to-date. For WSL, version 2.4.4 or greater is required for the simple installation experience. Older versions will work as well, but require some manual first-time setup.

For WSL versions 2.4.4+:

  1. Have access to a Windows installation with WSL 2.4.4+
  2. Download the Fedora WSL tarball
  3. From the command line, install the tarball with "wsl --install --from-file .\path\to\Fedora.tar.xz"
  4. Enter the environment by running "wsl -d Fedora"
  5. Use the interactive out-of-the-box experience script to set up a new user
  6. Install some applications, start some services, see if things fall over.

For WSL versions prior to 2.4.4:

  1. Have access to a Windows 10 or 11 installation (VMs should work)
  2. On the Windows host, download the WSL tarball from <somewhere>
  3. Open up a Windows terminal and install WSL itself with "wsl --install"
  4. Import the WSL tarball with "wsl --import Fedora $ENV:LOCALAPPDATA\WSL\Fedora .\Path\To\Fedora.x86_64-Rawhide.tar.xz"
  5. Enter the environment with "wsl -d Fedora -u root"
  6. manually execute the interactive out-of-the-box experience script to set up a new user with "/usr/libexec/wsl/oobe.sh"
  7. exit the environment logged in as root
  8. Enter the environment as the newly created user with "wsl -D Fedora -u <username>"
  9. Install some applications, start some services, see if things fall over.

User Experience

Dependencies

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) Don't ship the tarball
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? No

Documentation

Add a section somewhere in https://docs.fedoraproject.org/ (perhaps quick docs) with a short guide on installing the tarball. This will cover both older versions of WSL which require more manual steps as well as the newer, easier method of installation.

Release Notes