Switch to Calamares
Things that are done:
- Calamares' support for LUKS encryption was lacking in multiple significant ways. Aarn has patched it so that it now has more Ubiquity-like behavior when enabling encryption - a /boot partition is split off and left unencrypted.
- Preliminary Calamares config for Kubuntu is finished. This is still laden with Lubuntu artwork as it is based off Lubuntu's config and tweaked to work with Kubuntu, and it's lacking anything related to OEM mode.
- Preliminary OEM configuration and "glue" for Kubuntu is finished and uploaded. It's also laden with Lubuntu artwork, but it seems to be functional enough to consider alpha-quality.
- LUKS + BTRFS + unencrypted /boot used to result in a rather unhappy installation. https://github.com/calamares/calamares/issues/2281 This has been fixed.
-
calamares
andcalamares-settings-kubuntu
are seeded. -
kubuntu-installer-prompt
is written and seeded.
Things that still need done:
- The current attempt to upstream the Calamares patches can be seen here: https://github.com/calamares/calamares/issues/1938 Unencrypted partition support has been merged (https://github.com/calamares/calamares/pull/2280), however the ability to split off the /boot partition only when encryption is enabled may end up being a downstream-only patch.
- The branding needs fixed. Rick Timmis has volunteered to take that on.
- This isn't as critical, but it would be nice to get Simon Quigley's
pkgselect
QML module working well and enabled in Kubuntu. Currently it is disabled since it's a bit glitchy and for some reason the font rendering is horribly broken.
The plan for OEM mode:
- User boots ISO.
- Desktop appears, no "try or install" screen
- "Install Kubuntu 24.04 LTS" is seen in the upper-left corner
- Hiding in the application menu under "System", an item "Enable OEM installation mode" is buried
- User:
- clicks Application Menu > System > Install Kubuntu 24.04 LTS (OEM Mode)
- Confirmation window appears: "You are about to install the OS in OEM mode. This will prepare the system for distribution to an end user, providing them with an account setup wizard. If you do not need this capability, please cancel and use the normal install method. [ Continue ] [ Cancel ]"
- If confirmation is provided, a popup appears confirming that OEM installation mode has been activated.
- If user later cancels this process and tries to "Install Kubuntu 24.04 LTS", they will be told they need to reboot: "The installer was previously run in OEM mode. Please reboot to reset the configuration and try again. [ Cancel ]".
- Calamares window appears, welcome image indicates that OEM installation mode is active
- User proceeds through installation
- On the users screen, the name "OEM configuration" and username "oem" are pre-populated and cannot be changed
- User reboots after installation
- System automatically logs into a full Plasma desktop under the oem user
- Hiding in the application menu under "System", an item "Prepare for shipping to end user" is buried
- User makes desired customizations to system
- User clicks Application Menu > System > Prepare for shipping to end user
- Confirmation window appears
- If confirmation is provided, a popup appears confirming that the system will boot into end-user configuration on next reboot
- User shuts down system and ships it
- End-user boots system
- System automatically logs into the oem user
- Wallpaper appears, no desktop
- Calamares window in oem-setup mode appears, window cannot be cancelled out of
- End-user proceeds through OEM setup steps
- End-user is dropped to a login prompt at the end of the steps
- End-user logs in
- Desktop appears
- Calamares is no longer installed
- OEM configuration files have already been cleaned up
- End-user customizes system to their liking and uses it for years
- doesn't enable OEM installation and proceeds directly to installation
- User double-clicks "Install Kubuntu 24.04 LTS"
- Calamares window appears, branding is the normal end-user installation branding
- User proceeds through installation
- No name or username are forced
- User reboots after installation
- Login screen is displayed or not depending on how the user configured things
- User logs in
- Desktop appears
- Calamares is not installed
- User customizes system to their liking and uses it for years
- User double-clicks "Install Kubuntu 24.04 LTS"
- clicks Application Menu > System > Install Kubuntu 24.04 LTS (OEM Mode)
Implementation:
-
Write /usr/share/applications/calamares-enable-oem.desktop -
Write /usr/bin/calamares-enable-oem.sh, which: -
Changes welcome image to indicate that OEM installation mode is active, by copying /etc/calamares/branding/kubuntu/welcome-oem.png to /etc/calamares/branding/kubuntu/welcome.png -
Adds an oemid module immediately after the packages module in the settings.conf file. -
Changes the packages module config so that it doesn't remove Calamares from the installed system -
Changes the users module so that the fullName and loginName are forced to "OEM configuration" and "oem" and are not editable -
Adds a shellprocess@oemprep module immediately after the oemid module, which will: -
Untar /etc/calamares/oemconfig.tar.gz into the root of the installed system - this archive contains -
OEM config for Calamares -
An /etc/sddm.conf file that enables autologin for oem and sets the default desktop session to Plasma X11 -
A custom minimal X session -
basicwallpaper -
/etc/sudoers.oem that provides passwordless sudo to the oem user
-
-
Moves /etc/sudoers to /etc/sudoers.orig in the installed system -
Moves /etc/sudoers.oem to /etc/sudoers in the installed system
-
-
-
Write OEM config for Calamares, which will: -
Not allow the user to escape it using a cancel button -
Show the welcome screen -
Make sure to set the oem-setup property in settings.conf to true so it calls itself a setup program
-
-
Show the locale screen -
Show the keyboard screen -
Show the user screen -
Run machineid -
Run locale -
Run keyboard -
Run localecfg -
Run users -
Run removeuser to get rid of the OEM user -
Uninstalls Calamares -
Deletes all OEM files (/etc/calamares, /usr/bin/basicwallpaper, /usr/bin/calamares*.sh, /usr/share/calamares*.desktop) -
Removes autologin file entirely -
Removes minimal X11 session -
Deletes /etc/sudoers and moves /etc/sudoers.orig to /etc/sudoers -
Shows finish screen
-
-
Write /usr/share/calamares-finish-oem.desktop -
Write /usr/bin/calamares-finish-oem.sh, which: -
Writes an /etc/sddm.conf file that enables autologin for oem and sets the default desktop session to a custom minimal one
-
-
Write /usr/bin/basicwallpaper (this will be an app that just displays a wallpaper in the background of a window manager) -
Write a minimalistic X session that: -
Starts KWin -
Starts basicwallpaper -
Starts Calamares -
Cleans up everything when Calamares exits
-
-
Press Release on Details of New Calamares Installer -
Additional Release on OEM Mode -
Calamares To News on kubuntu.org -
New OEM To News on kubunut.org
-
Edited by Aaron Rainbolt