Doing this apparently[0] breaks using `wsl --manage <distro>
--set-default-user` (in my test, wsl says it completed successfully, but
actually doesn't do anything at all). Since we set the default UID in
wsl-distribution.conf, the default default user will be UID 1000, which
we expect to create anyway.
While it's nice to support old versions of WSL, I think it's also
reasonable to require users to update to ensure things work. For
example, most things in Fedora expect cgroups v2, but WSL only removed
cgroups v1 in 2.5.
If users report an issue and note they're not using the latest WSL
stable release I'm just going to tell them to reproduce it on the
latest, and if they can't I'm not going to spend any time trying to make
it work.
[0] https://github.com/microsoft/WSL/pull/13094#issuecomment-2971990351
Signed-off-by: Jeremy Cline <jeremycline@linux.microsoft.com>
The OOBE script uses adduser from the shadow-utils package and
systemctl to inspect service state, so we should require those be
installed. This is particularly important for users building custom WSL
images since we explicitly list both those packages in our Kiwi config.
Suggested-by: Simon de Vlieger <supakeen@redhat.com>
Signed-off-by: Jeremy Cline <jeremycline@linux.microsoft.com>
Let's wait for `cloud-init` to finish before we exit the OOBE; this
ensures that any potential user has been created. In the future we might
want to always continue with our OOBE, in those cases that `cloud-init`
didn't create a user we can then continue with the prompt(s).
Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
WSL supports `cloud-init` for provisioning. In some cases (RHEL) this is
enabled. If `wsl-setup` is used on RHEL then there's a TOCTOU between
the check for "no user exists" and the "create user" part as
`cloud-init` creates the user during the prompt.
Let's exit early and assume everything is handled by `cloud-init` *if*
it is enabled.
Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
The script generates wsl-distribution.conf from a template.
You can pass it options for the Name as well as the
logo file.
Signed-off-by: Troy Dawson <tdawson@redhat.com>
Added in https://pagure.io/fedora-logos/pull-request/27 there's now a
logo in a format acceptable to WSL. This adds a dependency on the logos
package and configures the icon setting for the distribution.
This includes the tmpfiles config to link the various WSL-provided
service sockets to the expected location.
It also includes an override snippet for systemd-firstboot to have it
not run inside WSL for the present as it hangs forever.