greeter
greeter copied to clipboard
Latest ISO doesn't automatically launch installer
What Happened?
The greeter is supposed to be responsible for launching the installer session when it detects it is installed.
Something has changed in the stack somewhere that prevents this from occurring successfully.
I believe this is because the elementary
user that casper
creates during bootup of the live ISO isn't recognised as a user by LightDM, and the Greeter follows the "no users, so launch initial setup" path.
It seems that casper
creates this user as UID 999, and probably always has. LightDM uses AccountsService to get the list of valid "human" users to be displayed in the greeter. It seems that AccountsService now only treats users with UID >= 1000 as real users, whereas previously it must have done something else. So, this elementary
user is not presented to the greeter as a valid user, and the initial setup flow is launched instead of the installer.
I don't think we can just change the logic to just launch the installer session regardless of whether there's a user or not, because it relies on launching the installer session as that user.
So, possible solutions:
- Patch
casper
to create the live user with UID1000
- Patch whichever config AccountsService is looking at to have valid UIDs as >= 999 (probably in the ISO only)
- Completely rethink/rework how the installer "sessions" work (i.e. have the installer run in a pantheon session, or see if it's possible to run it directly in the greeter instead of its own session)
Steps to Reproduce
- Boot 20220228 ISO
- End up at initial setup instead of installer
Expected Behavior
- Boot ISO
- Get to installer
OS Version
7.x (Early Access)
Software Version
Compiled from git
Log Output
No response
Hardware Info
No response
I can confirm this issue. It seems like this would be a good time to revisit this in Greeter and maybe change the way we launch the installer to detecting Casper?
I don't think I understand your proposal.
We currently rely on LightDM to autologin to either the installer session or the demo session.
But as far as it's concerned, there is no user to autologin to. It's accountsservice that provides the list of users. And accountsservice has decided that users with UID < 1000 aren't users.
Ah yeah sorry I haven't jumped into the code here yet. I know accountservice now automatically ignores non-person accounts in its list of users. I was more just commenting that we can probably still solve this in greeter instead of with a patch and that there's probably some code in greeter we can revisit anyways that was launching the installer whenever it's installed regardless of whether we were in a live session
The installer is currently a session, and a session needs a user to run under, and for all intents and purposes, we don't have a user (at least not one the greeter can see or launch sessions under).
If we rework the whole thing so that the installer process runs under the greeter rather than in a session, then sure, we don't have to patch anything.
But I bet we'd find a bunch of other issues.
I built a patched version of the caper package yesterday: https://github.com/elementary/os-patches/compare/casper-jammy...casper-jammy-patched
It's in the launchpad PPA and the latest daily iso was built with it included: https://github.com/elementary/os/actions/runs/3124228888/jobs/5071898039
~~However, I've not been able to test it because the builds site is showing the 20220925 daily as the latest available to download instead of the 20220926 including the potential fix.~~
~~@danirabbit Could you look to see if this is a recurrence of this issue? https://github.com/elementary/builds/issues/62~~
~~I think if there's a bunch too many files in the DO bucket, then we start to miss some of the newer files on the frontend. Don't know if we want to be more aggressive at cleanup policies to remove older images.~~
The latest daily iso now launches the installer correctly, if we want to take this approach and make this change permanent, we should merge https://github.com/elementary/os-patches/pull/254
If we don't want to take this approach, we'll need to delete the casper packages and recipes from the patches PPA.