From Fedora Project Wiki
 
(8 intermediate revisions by the same user not shown)
Line 8: Line 8:
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. Note that motivation for the change should be in the Benefit to Fedora section below, and this part should answer the question "What?" rather than "Why?". -->
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. Note that motivation for the change should be in the Benefit to Fedora section below, and this part should answer the question "What?" rather than "Why?". -->


Recent versions of Windows support running Linux guests via Windows Subsystem for Linux (WSL). These can be distributed via the Windows Store, or as tarballs, or Appx files for users to download and install. The purpose of this change is to start producing Fedora images for users of WSL.
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.
 
Since distributing via the Windows Store requires legal agreements we cannot make, this change proposal is to distribute a tarball. Later, we can expand to producing Appx packages for a simpler installation experience for users.


== Owner ==
== Owner ==
Line 35: Line 37:
<!-- [[Category:SystemWideChange]] -->
<!-- [[Category:SystemWideChange]] -->


* Targeted release: [https://docs.fedoraproject.org/en-US/releases/f41/ Fedora Linux 41]
* Targeted release: [https://docs.fedoraproject.org/en-US/releases/f42/ Fedora Linux 42]
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 51: Line 53:
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->


Recent versions of Windows support running Linux distributions using [https://learn.microsoft.com/en-us/windows/wsl/about 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 does not include documentation and non-essential tools. There also isn't official documentation on how to use it.
Recent versions of Windows support running Linux distributions using [https://learn.microsoft.com/en-us/windows/wsl/about 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:
 
* Add a WSL variant to https://src.fedoraproject.org/rpms/fedora-release/
* 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.


In addition to distributing a plain tarball, it is possible to distribute Windows Appx packages that contain a distribution. An Appx package is a zip that contains an executable, data files, and package metadata. In the case of a WSL package, this includes the tarball mentioned above, some standard metadata describing the package, and an executable that can provide first-time setup and a shortcut for entering the environment. OpenSUSE has taken the Microsoft example executable and forked it to be build-able with autotools [https://github.com/OpenSUSE/WSL-DistroLauncher here]. With that executable we can configure Kiwi, which already builds the cloud images, to produce an Appx package as well.
In future changes, we can build on this change to enable a smoother user experience. It is possible to distribute WSL distributions as Windows Appx packages. These are composed of the root filesystem tarball along with a Windows executable to handle setting up the distribution automatically, enabling users to install the Fedora WSL environment with a few clicks.


== Feedback ==
== Feedback ==
Line 87: Line 95:
-->
-->


A dedicated image with documentation lets users of WSL try out Fedora with minimal effort.
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 ==
== Scope ==
Line 132: Line 140:
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->


# Have access to a Windows 10 or 11 installation (VMs should work)
# On the Windows host, download the WSL tarball from <somewhere>
# 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"
# Enter the environment with "wsl -d Fedora"
# Install some applications, start some services, see if things fall over.


== User Experience ==
== User Experience ==
Line 154: Line 168:


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency mechanism: (What to do?  Who will do it?) Don't ship the tarball <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
* Contingency deadline: N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency deadline: N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
 


== Documentation ==
== Documentation ==
Line 165: Line 178:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
Add a section somewhere in https://docs.fedoraproject.org/ (perhaps quick docs) with a short guide on installing the tarball.


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

Latest revision as of 18:23, 30 August 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.

Since distributing via the Windows Store requires legal agreements we cannot make, this change proposal is to distribute a tarball. Later, we can expand to producing Appx packages for a simpler installation experience for users.

Owner


Current status

  • Targeted release: Fedora Linux 42
  • Last updated: 2024-08-30
  • [<will be assigned by the Wrangler> devel 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:

In future changes, we can build on this change to enable a smoother user experience. It is possible to distribute WSL distributions as Windows Appx packages. These are composed of the root filesystem tarball along with a Windows executable to handle setting up the distribution automatically, enabling users to install the Fedora WSL environment with a few clicks.

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:
  • Other developers:
  • 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

  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 C:\Users\<username>\AppData\Local\WSL\Fedora .\Path\To\Fedora.x86_64.tar.xz"
  5. Enter the environment with "wsl -d Fedora"
  6. 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.

Release Notes